Montre mécanique

Transformer une date en langage naturel, en timestamp

Publié dans PHP | Marqué avec , , , ,
Share

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*