PHP >= 5.1 et la gestion avancée des dates

La gestion des dates est toujours problématique sur Internet. En effet, nous ne sommes pas tous dans les mêmes fuseaux horaires. Nous n’utilisons pas tous les mêmes normes d’affichage (un exemple simple: les anglophones mettent le mois avant le jour … nous: non). Il y a aussi la gestion des heures d’été, la façon d’exprimer le nom d’un fuseau horaire, …

Bref, c’est une joyeuse pagaille ! Sans compter que cette gestion (au niveau système) n’est pas la même en fonction du système d’exploitation qui héberge l’application PHP en question. Voilà pourquoi PHP intègre (depuis 5.1 en expérimental et 5.2 en natif) deux nouveaux objets: DateTimezone et DateTime permettant de gérer les dates proprement et indépendamment de l’OS.

A ce sujet, Julien Pauli vient de publier un tutorial sur Developpez présentant l’utilisation de ces nouveaux objets. Il n’y a rien à redire: ça simplifie grandement la gestion fiable et précise du temps ! Voici un exemple de code:

$date = new DateTime("1819-02-14 10:51");
echo $date->format('D Y-m-d H:i:s - \s\e\m\a\i\n\e W'); // Sun 1819-02-14 10:51:00 - semaine 06
 
echo $date->format(DateTime::ATOM); // 1819-02-14T10:51:00+00:09
echo $date->format(DateTime::COOKIE); //Sunday, 14-Feb-19 10:51:00 PMT
echo $date->format(DateTime::ISO8601); //1819-02-14T10:51:00+0009
echo $date->format(DateTime::RSS); //Sun, 14 Feb 1819 10:51:00 +0009
echo $date->format(DateTime::W3C); //1819-02-14T10:51:00+00:09
echo $date->format(DateTime::RFC3339); //1819-02-14T10:51:00+00:09

Bref, un article à lire absolument !

Lire « PHP5 : La gestion avancée des dates » sur Developpez

Cette entrée a été publiée dans Pro, avec comme mot(s)-clef(s) , , . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>