Gestion des dates en PHP
Que faire avec les timestamps ?
Bon maintenant, nous avons des timestamps, mais que peut-on bien en faire ??? Plusieurs options s'offrent à vous,
1 - Le formatage de date :
Le PHP possède une fonction qui permet de formater une date depuis un timestamp vers une date en chaîne de caractères. Il s'agit de la fonction date().
<?php
$chaine = date(String Format, [int Timestamp]);
?>
Le paramètre Format permet de spécifier le type d'informations que l'on veut extraire du timestamp. A noter également que ce timestamp est optionnel, et si vous l'omettez, date() utilisera l'heure en cours.
Voici la liste des paramètres qu'utilise date() :
a : am (matin) ou pm (après-midi)
A : AM (matin) ou PM (après-midi)
B : Heure Internet Swatch
d : Jour du mois avec le zéro (01 à 31)
D : Jour de la semaine en 3 lettres et en anglais
F : Nom du mois en anglais
g : Heure, format 12h, sans le zéro (1 à 12)
G : Heure, format 24h, sans le zéro (0 à 23)
h : Heure, format 12 h (00 à 12)
H : Heure, format 24 h (00 à 23)
i : Minutes (00 à 59)
I : 1 si heure d'été, 0 si heure d'hiver
j : Jour du mois sans le 0 (1 à 31)
l : Jour de la semaine en anglais (version longue)
L : 1 si année bissextile 0 sinon
m : Numéro du mois sur 2 chiffres (01 à 12)
M : Nom du mois en Anglais en 3 lettres (Apr pour Avril)
n : Numéro du mois sans le 0 (1 à 12)
O : Différence avec l'heure de Greenwitch (ex: +0200)
r : Formaté RFC 822 : Thu, 21 Dec 2000 16:01:07 +0200 (>=PHP 4.0.4)
s : Secondes
S : Suffixe ordinal d'un nombre en anglais (nd et rd)
t : Nombre de jours dans le mois
T : Fuseau horaire (CEST, MET, etc)
U : Temps en secondes (timestamp)
w : Jour de la semaine (0 : Dimanche, 6 : Samedi)
Y : Année sur 4 chiffres
y : Année sur 2 chiffres
z : Jour de l'année (0 à 365)
Z : Décalage horaire en seconde
Voici différents exemples avec leur résultats :
date("d/m/Y H:i:s"); 14/09/2006 15:21:33
date("l d F Y"); Thursday 14 September 2006
date("h:i:s A T"); 03:21:33 PM CEST
Comme vous avez pu le remarquer, les quelques fonctions retournant les noms de mois et de jours sont en anglais. Il vous suffit d'une petite manipulation pour les obtenir en français :
<?php
$monthes = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet',
'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$days = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$date_first = $days[date('w')];
$date_second = $monthes[date('n')];
echo $date_first.' '.date('d').' '.$date_second.' '.date('Y');
?>
Le résultat :
Jeudi 14 Septembre 2006
Maintenant, à vous de manipuler les arguments de date() pour afficher la date dans le format que vous souhaitez.
Regardons maintenant de plus près la manipulation des timestamps...