Mammouth du PHP |
19672 Messages
30 mars 2005, 10:39
Il faut distinguer le format d'affichage du format de stockage;
Dans MySQL, la date est stockée au format anglo-saxon, YYYY-MM-DD et nous l'affichons au format français JJ MM AAAA
Ce que tu peux donc faire, c'est construire une chaine correspondant au format de stockage pour envoyer les données ou les comparer avec ce qui est dans la base et faire l'opération inverse pour l'afficher sur une page.
Voici un exemple : je récupère une date dans un champs `date-cde` que je mets dans une variable $date_cde et je veux l'afficher en français sur ma page :
$jour_cde = substr($date_cde,8,2);
$mois = substr($date_cde, 5, 2);
switch ($mois)
{
case 01 : $mois_cde = "janvier"; break;
case 02 : $mois_cde = "février"; break;
case 03 : $mois_cde = "mars"; break;
case 04 : $mois_cde = "avril"; break;
case 05 : $mois_cde = "mai"; break;
case 06 : $mois_cde = "juin"; break;
case 07 : $mois_cde = "juillet"; break;
case 08 : $mois_cde = "août"; break;
case 09 : $mois_cde = "septembre"; break;
case 10 : $mois_cde = "octobre"; break;
case 11 : $mois_cde = "novembre"; break;
case 12 : $mois_cde = "décembre"; break;
}
$annee_cde = substr($date_cde, 0, 4);
$cde_formatee = "le ". $jour_cde ." ". $mois_cde ." ". $annee_cde .";
Si tu récupères les éléments constituants de la date de trois champs de formulaire distincts, tu construis une chaîne avec ces éléments pour la mettreau format DATE de ta base avant de faire une insertion ou une comparaison avec une valeur existante avec le même principe.
Mais dans ma base, je n'ai pas trois champs mais un seul et la clause ORDER BY le traite très bien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 