Problèmes de mise en forme d'une date
Question
Je suis en train d'écrire une fonction pour formater une date et heure pour moi. J'ai une fonction presque identique qui formate juste une date. Cette fonction fonctionne très bien. Je viens d'ajouter un peu de code pour essayer de l'avoir en forme la date avec un temps. Elle doit retourner quelque chose comme « 18 mai 2009 21h50 » mais je reçois cet avertissement:
Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421
Voici le code que j'ai:
function dateTimeFormat($dateIn)
{
$x = explode(" ",$dateIn);
$y = explode("-",$x[0]);
$z = explode(":",$x[1]);
$year = $y[0];
$month = $y[1];
$day = $y[2];
$hour = $z[0];
$min = $z[1];
$dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year));
return $dateOut;
}
Ce qu'il met en est faux aussi. Il met à:
December 31, 1969 07:00 PM
mais l'horodatage dans la base de données est
2009-05-18 05:07:39
La solution
PHP a déjà une très bonne fonction de la date-analyse syntaxique: strtotime()
. Il retourne un timestamp Unix que vous pouvez passer à date()
.
En d'autres termes, votre fonction peut être réduite à ceci:
function dateTimeFormat($dateIn)
{
return date("F j, Y h:i A", strtotime($dateIn));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow