Partagez winpix...

Facebook Twitter Google Delicious RSS

PHP - Les Dates

Posté le 19 mars 2010 par winpix

Les dates

La gestion des dates en PHP est très accessible. Tout au long de ce tutorial, nous verrons les fonctions principales du style date(). Mais aussi des fonctions plus interessantes comme mktime(), nous finirons par un exercice visant à créer une fonction d'affichage de date sous différentes formes.

La fonction date()

La fonction date() renvoie toujours une chaîne de caractères correspondant à ce qu'on lui a demandé (ça peut être l'heure, le jour, le mois, etc...). Attention, les paramètres renvoyés correspondront à ceux du serveur, si votre serveur a une heure déréglée, la fonction date() ne renverra pas une heure correcte (voir comment rélger le fuseau horaire du serveur). Pour que la fonction sache ce qu'on attend d'elle, on va placer comme paramètre unique un code. Ce code se compose de différents caractères détaillés ci-dessous :

Date et Heure complète

Caractère Signification Exemples de valeurs possibles :
Jour    
j Jour du mois sur deux chiffres sans les zéros initiaux 1 à 31
d Jour du mois sur deux chiffres avec un zéro initial en fonction du jour 01 à 31
l (L min.) Jour de la semaine en anglais Sunday à Saturday
w Jour de la semaine au format numérique 0 (dimanche) à 6 (samedi)
z Jour de l'année 0 à 366
Semaine    
W Numéro de semaine dans l'année (les semaines commencent le lundi) Exemple : 42 (la 42ème semaine de l'année)
Mois    
F Mois, textuel, version longue; en anglais, comme January ou December January à December
m Mois au format numérique, avec zéros initiaux 01 à 12
n Mois sans les zéros initiaux 1 à 12
t Nombre de jours dans le mois 28 à 31
Année    
L Est ce que l'année est bissextile 1 si bissextile, 0 sinon.
Y Année sur 4 chiffres Exemples : 1999 et 2003
y Année sur 2 chiffres Exemples : 99 et 03
Heure    
a Ante méridien et Post méridien (minuscules) am ou pm
A Ante méridien et Post méridien (majuscules) AM ou PM
g Heure (format 12h) sans les zéros initiaux 1 à 12
G Heure (format 24h) sans les zéros initiaux 0 à 23
h Heure (format 12h) avec les zéros initiaux 01 à 12
H Heure (format 24h) avec les zéros initiaux 00 à 23
s Secondes avec zéros initiaux 00 à 59
i Minutes avec zéros initiaux 00 à 59
Fuseau horaire    
e L'identifiant du fuseau horaire (ajouté en PHP 5.1.0) Exemples : UTC, GMT, Atlantic/Azores
I (i majuscule) L'heure d'été est activée ou pas 1 si oui, 0 sinon.
O Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures Exemple : +0200
P Différence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutes (ajouté dans PHP 5.1.3) Exemple : +02:00
T Abréviation du fuseau horaire Exemples : EST, MDT ...
Z Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négative, et à l'est, il est positif. -43200 à 50400
Date et Heure complète    
c Date au format ISO 8601 (ajouté en PHP 5) 2004-02-12T15:19:21+00:00
r Format de date » RFC 2822 Exemple : Thu, 21 Dec 2000 16:01:07 +0200
U Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT)  

Exemple :
<?PHP
echo date("d/m/Y"); // Affichera : 17/03/2010

echo date("H:i:s"); // Affichera l'heure : 20:40:52

echo date("d/m/Y H:i:s"); // Affichera : 17/03/2010 20:40:52

echo date("Y-m-d H:i:s"); // Format Datetime US : 2010-03-17 20:40:52
?>

La fonction time()

La fonction time renvoit l'heure sous le format d'un Timestamp UNIX (le nombre de secondes depuis le 01/01/1970 00:00:00 GMT).

Exemple :
<?PHP
echo time(); // Affichera par ex. : 1268902203
?>

Le Timestamp

Un timestamp est un nombre qui indique les secondes qui se sont écoulées depuis le 1er janvier 1970. Grâce au Timestamp la manipulation des dates devient plus simple.

Convertir une date en timestamp grâce à la fonction mktime :

<?PHP
$timestamp = mktime(heures, minutes, secondes, mois, jour, année);
?>

La fonction strtotime() peut également transformer une date de format US en Timestamp :

<?PHP
$timestamp = strtotime("2010-03-12 18:45:50");
?>

Changer le format d'une date

Il faut tout d'abord que votre date soit un Timestamp (voir ci-dessus), il nous reste qu'à changer le mode d'affichage :

<?PHP
$date = "2010-03-12 18:45:50";
$timestamp = strtotime($date);
echo date('l d F Y', $timestamp); // Affichera Friday 12 March 2010
?>

Régler le fuseau horaire du serveur

La fonction date_default_timezone_set() définit le décalage horaire par défaut de toutes les fonctions date/heure (liste des fuseaux horaires). Cette fonction est utilisable en PHP 5 >= 5.1.0.

Exemple :
<?PHP
date_default_timezone_set('Europe/Paris');
?>

Partager cet article

Facebook Twitter Google My Space Delicious

Commentaires

Vous pouvez poster votre commenataire sans être identifié.

En revanche si vous possédez un compte, identifiez-vous cela vous évitera de renseigner à chaque vos coordonnées.

Les champs marqués d’une * sont obligatoires.

Ce formulaire accepte le BBCODE.