En ce moment, je m’amuse avec des flux RSS, et il se trouve que dans un flux RSS, on tombe souvent sur une date de la forme : « Fri Oct 30 17:17:00 2009 ». Bref, une date en langage naturel ! Mais voilà, ce dont j’ai besoin c’est d’une date au format timestamp (le nombre de secondes depuis le 1er janvier 1970 à minuit, aussi appelé l’epoch). Je pars donc avec mes grands sabots : des regex pour séparer heures, minutes, …, et un p’tit coup de mktime !
C’est pas mal, mais en fouillant dans la doc, j’ai trouvé une petite fonction fort sympathique : strtotime ! Cette fonction prend une chaine de caractères en argument et renvoie, si possible, le timestamp correspondant. Plusieurs mots clefs sont pris en compte, par exemple now
, ou next Thursday
. Et le format de date précédemment cité est bien reconnu, chouette, non ? Pour se convaincre :
$str = 'Mon Nov 2 07:01:11 2009';
$timestamp = strtotime($str);
$str2 = date('D M j H\:i\:s Y', $timestamp);
echo 'Date d\'origine : '.$str.'<br />Timestamp après strtotime : '.$timestamp.'<br />Date réécrite après strtotime : '.$str2;
Ce qui affiche bien :
Date d’origine : Mon Nov 2 07:01:11 2009
Timestamp après strtotime : 1257145271
Date réécrite après strtotime : Mon Nov 2 07:01:11 2009
Magique, non ?
Bon, je retourne à mes flux RSS.