Vérifier une chaîne (date)
Bonjour.
Dans mon formulaire je demande la saisie d'une date que je controle.
Je vérifie la longueur de la chaîne, les jours, etc.
le séparateur est un "/".
Quand je fais explode("/", ma_date) j'ai un message d'erreur si le séparateur n'est pas "/".
Comment je peux éviter ce problème?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| if (isset($_POST['sortie1'])) $sortie1 = $_POST['sortie1'];
else $sortie1 ="";
$jour = "";
$mois= "";
$annnee = "";
$tableau = "0000-00-00";
if ((strlen($sortie1) != 10) && strlen($sortie1) > 0){
$message= "$sortie1 n'est pas une date valide";
}
else if (strlen($sortie1) == 10){
$tableau = explode("/",$sortie1);
$jour = $tableau[0];
$mois = $tableau[1];
$annee = $tableau[2];
if ((($mois == 4) || ($mois == 6) || ($mois == 9) || ($mois == 11)) && $jour == 31){
$message = "$jour/$mois/$annee est une date non valide";
$tableau = "0000-00-00";
}
else if ($mois == 2){
if( (is_int($annee/4) && !is_int($annee/100)) || is_int($annee/400)) {
// Année bissextile
if ($jour > 29) {
$message = "$jour/$mois/$annee est une date non valide";
$tableau = "0000-00-00";
}
} else {
// Année NON bissextile
if ($jour > 28) {
$message = "$jour/$mois/$annee est une date non valide";
$tableau = "0000-00-00";
}
}
}
else if ($jour > 31){
$message = "$jour/$mois/$annee est une date non valide";
$tableau = "0000-00-00";
}
else {
$tableau = "$annee-$mois-$jour";
$tableaufr = "$jour/$mois/$annee";
}
} |
Merci d'avance