Vérifier format date (php/mysql)

Résolu
crazyous Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -  
crazyous Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis en train de développer une appli web en php/mysql.
A un moment donné l'utilisateur doit rentrer une date via formulaire et cette derniére sera enregistrer dans la bd.
pour vérifier le format de la date, j'ai fait ceci car dans db c'est stocké selon le format yyyy-mm-dd:

if (preg_match('#^([0-9]{4})(-)(0[1-9]|1[0-2])(-)(0[1-9]|1[0-9]|2[0-9]|3[0-1])$#', $periode, $m) == 1)
{
// code

$sql_in = "INSERT INTO entree_sortie_conso VALUES (..., '$periode', ...)";
$in = $db->prepare($sql_in);
$in->execute();

// code
}

NB: $periode = $_POST['periode']

mon probléme c'est que je ne peux pas vérifier la validité de la date. par ex si c'est 2009-11-31 sachant qu'en nov il ya que 30 jr. j'avais pensé à checkdate() mais il le fait que pour jj-mm-yyyy.
merci d'avance de votre aide
A voir également:

1 réponse

crazyous Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   86
 
c'est bon j'ai réglé le blem, je devais être trop crevé pour ne pas y avoir pensé.
j'ai juste ajouté ça :

if (preg_match('#^([0-9]{4})(-)(0[1-9]|1[0-2])(-)(0[1-9]|1[0-9]­|2[0-9]|3[0-1])$#', $periode, $m) == 1) // "aaaa-mm-jj"
{

$jour = substr($periode, 8, 2); // "jj"
$mois = substr($periode, 5, 2); // "mm"
$annee = substr($periode, 0, 4); // "aaaa"

// on vérifie la validité de la date
if (checkdate($mois,$jour,$annee))
{

// code

$sql_in = "INSERT INTO entree_sortie_conso VALUES (..., '$periode', ...)";
$in = $db->prepare($sql_in);
$in->execute();

// code
}

}


NB: $periode = $_POST['periode']
2