Bonjour à tous,
Je souhaiterais savoir si il existe en php une fonction permettant de connaitre le type d'une variable, en particulier une fonction isDate afin de savoir si l'utilisateur a bien saisi une date.
Bonjour à tous,
Je souhaiterais savoir si il existe en php une fonction permettant de connaitre le type d'une variable, en particulier une fonction isDate afin de savoir si l'utilisateur a bien saisi une date.
Bonjour,
Pour les types de variables, c'est là :
http://www.php.net/manual/fr/function.gettype.php
Et pour les dates :
http://www.php.net/manual/fr/function.checkdate.php
Le problème c'est que ce que saisie l'utilisateur peut être une chaine de caractère sans / ou - donc si j'utilise la fonction checkdate comme définie ci dessous cela me retournera une erreur puisque la fonction explode ne trouvera pas le ceractère / ou -
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function checkData($date) { if (!isset($date) || $date=="") { return false; } list($dd,$mm,$yy)=explode("/",$date); if ($dd!="" && $mm!="" && $yy!="") { if (is_numeric($yy) && is_numeric($mm) && is_numeric($dd)) { return checkdate($mm,$dd,$yy); } } return false; }
Avec une expression régulière :
Si je n'ai pas fait d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function verifier_date($date) { return (preg_match('#^(\d{2})([/-])(\d{2})\2(\d{4})$#D', $date, $m) == 1 && checkdate($m[3], $m[1], $m[4])); } var_dump(verifier_date('01/10/2007'));
![]()
J'ai résolu mon problème j'utilise un bout de ce qui m'a été donné par julp puisque je souhaite juste tester si la variable est une date au format américain et non pas un integer ou double... mais je ne souhaite vérifier si la date est correcte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function verifiervariabledateus($variable) { if (preg_match('#^(\d{4})([/-])(\d{2})\2(\d{2})$#D', $variable, $m) == 1) { return (1); } else { return (0); } }
Partager