Gérer les dates et l'heure  

PHP permet de récupérer l'heure et la date courante, mais il ne se limite pas qu'à cela, il nous permet vraiment une manipulation puissante des dates. Nous allons tout d'abord voir la fonction date.

La fonction date

La fonction date() permet de formater l'heure locale du serveur, mais attention l'heure locale est fonction de la situation géographique du serveur. Donc si un client en France interroge un serveur à Tokyo, il visualisera l'heure de Tokyo.

Exemple de code
  1. <?php
  2.   $date = date("d-m-Y");
  3. ?>

 

Dans l'exemple la variable $date est initialisée par la fonction date("d-m-Y") (ici: 09-05-1980).

Les paramètres contenus entre les parenthèses d-m-Y peuvent être placés dans l'ordre que vous désirez, ainsi la date au format US sera écrite ainsi : date("Y-m-d"), vous trouverez sur la page suivante tous les paramètres ce cette fonction, voici son prototypage :

string date (string format [, int timestamp])

Le timestamp permet de formater une date autre que celle courante. le timestamp peut être renvoyé par la fonction mktime() que nous verrons après.

Voici les attributs de la fonction date() :

Année, 2 chiffres; i.e. "99"
attributExemple
a"am" (matin) ou "pm" (après-midi)
A"AM" (matin) ou "PM" (après-midi)
B000 à 999
cHeure au format ISO 8601 *
dJour du mois, sur deux chiffres (éventuellement avec un zéros) :"01" à "31"
DJour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour Vendredi)
FMois, textuel, version longue; en anglais, i.e. "January" (pour Janvier)
gHeure, au format 12h, "1" à "12"
hHeure, au format 12h, "01" à "12"
Hheure, au format 24h, "00" à "23"
GHeure, au format 24h sans les zéros initiaux, "0" à "23"
iMinutes; "00" à "59"
IBooléen pour savoir si l'heure d'été est activée ("1") ou non ("0")
jJour du mois sans les zéros initiaux: "1" à "31"
l('L' minuscule) Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour Vendredi)
LBooléen pour savoir si l'année est bissextile ("1") ou pas ("0")
mMois; i.e. "01" à "12"
nMois sans les zéros initiaux; i.e. "1" à "12"
MMois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier)
ODifférence d'heure avec celle du méridien de greenwich (ex: +100)
rDate au format de la RFC 822
sSecondes; i.e. "00" à "59"
SSuffixe ordinal d'un nombre, en anglais, sur deux lettres : i.e. "th", "nd"
tNombre de jour dans le mois donné, i.e. "28" à"31"
TRetourne le fuseau horaire du serveur (ex EST, MDT)
USecondes depuis une époque
wJour de la semaine au format numérique (0 : dimanche,..., 6 lundi)
WNuméro de la semaine au format ISO 8601 (les semaines commencent le lundi)
YAnnée, 4 chiffres; i.e. "1999"
y 
zJour de l'année; i.e. "0" à "365"
ZDécalage horaire en secondes (i.e. "-43200" à "43200")

 

Exemple de code source
  1. <?php
  2.     $cejour = date("Y-m-d");
  3.     $apres = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+432, date("Y")));
  4. ?>
Résultat
  1. Aujourd'hui nous sommes le 1980-05-09 (US) et l'heure GMT est 14:42. Dans 432 jours nous serons le 1981-07-05.

 

La fonction mktime() retourne le nombre de secondes écoulées depuis le 1er Janvier 1970 qui correspond à la date des débuts d'UNIX.

Pour remplacer le ':' par un h (ex: 14h42), il faut ajouter un backslashe avant le h : date("H\hi"), pour spécifier à PHP que cette lettre est un caractère et non à nouveau l'heure en cours.


Retour à l'accueil des articles