Fonction PHP pour une date JJ/MM/AAAA HH:MM:SS en date YYYY-MM-DD HH:MM:SS
Si vous codez peu, vous vous rendez vite compte de l’importance des bons formats de date.
Le format YYYY-MM-DD HH:MM:SS (Exemple: 2016-08-25 10:06:34) est très souvent utilisé et il se révèle en effet très pratique: Comme il commence par l’unité de temps la plus grande (l’année) pour finir par la plus petite (le jour, les minutes ou les secondes suivant le cas), il suffit de faire un tri par ordre croissant ou décroissant pour que les dates soient automatiquement dans le bon ordre!
Pour transformer une date du format JJ/MM/AAAA HH:MM:SS au format YYYY-MM-DD HH:MM:SS, certains vous conseillerons ce type de fonction:
$date=date('Y-m-d h:i:s', strtotime($date_in_ddmmyyyy));
Pour l’avoir essayée, je peux vous dire que ça ne marche pas à tous les coups, la faute à un cafouillage entre les mois et les jours si le jour est compris entre 01 et 12…
Du coup je vous propose ma petite fonction PHP perso qui fait la transformation:
function convertdatetimeFRtoUS ($datetime)
{
$pieces = explode(" ", $datetime);
$pieces2 = explode("/", $pieces[0]);
return $pieces2[2] . "-" . $pieces2[1] . "-" . $pieces2[0] . " " . $pieces[1];
}
Exemple d’utilisation:
$dateFR="20/03/1976 13:45:23";
$dateFR=convertdateFRtoUS ($date);
echo $date;
va vous afficher 1976-03-20 13:45:23
Evidemment, on peut aussi la décliner pour qu’elle ne fasse que la transformation de la date JJ/MM/AAAA => YYYY-MM-DD sans l’heure:
function convertdateFRtoUS ($date)
{
$pieces2 = explode("/", $date);
return $pieces2[2] . "-" . $pieces2[1] . "-" . $pieces2[0];
}
Exemple d’utilisation:
$dateFR="20/03/1976";
$dateFR=convertdateFRtoUS ($date);
echo $date;
va vous afficher 1976-03-20