Vérifier format date (php/mysql)

Résolu/Fermé
crazyous Messages postés 61 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010 - 22 août 2009 à 00:34
crazyous Messages postés 61 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010 - 22 août 2009 à 17:58
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 mardi 21 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010 86
22 août 2009 à 17:58
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