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
Était-ce utile?

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
scroll top