Retourne une date sous forme d'une chaîne, au format
donné par le paramètre format,
fournie par le paramètre timestamp
ou la date et l'heure locales courantes si aucun timestamp n'est fourni.
En d'autres termes, le paramètre timestamp
est optionnel et vaut par défaut la valeur de la fonction time().
Liste de paramètres
format
Le format de la date désirée. Voir les options de formattage ci-dessous.
Tableau 1. Les caractères suivants sont reconnus dans le paramètre
format.
Caractères pour le paramètre format
Description
Exemple de valeurs retournées
Jour
---
---
d
Jour du mois, sur deux chiffres (avec un zéro initial)
01 Ã 31
D
Jour de la semaine, en trois lettres (et en anglais)
Mon à Sun
j
Jour du mois sans les zéros initiaux
1 Ã 31
l ('L' minuscule)
Jour de la semaine, textuel, version longue, en anglais
Sunday à Saturday
N
Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0)
1 (pour Lundi) Ã 7 (pour Dimanche)
S
Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres
st, nd, rd ou
th. Fonctionne bien avec j
w
Jour de la semaine au format numérique
0 (pour dimanche) Ã 6 (pour samedi)
z
Jour de l'année
0 Ã 366
Semaine
---
---
W
Numéro de semaine dans l'année ISO-8601, les semaines commencent
le lundi (ajouté en PHP 4.1.0)
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
M
Mois, en trois lettres, en anglais
Jan à Dec
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.
o
L'année ISO-8601. C'est la même valeur que
Y, excepté que si le numéro de la semaine ISO
(W) appartient à l'année précédente ou suivante,
cette année sera utilisé Ã la place. (ajouté en PHP 5.1.0)
Exemples : 1999 ou 2003
Y
Année sur 4 chiffres
Exemples : 1999 ou 2003
y
Année sur 2 chiffres
Exemples : 99 ou 03
Heure
---
---
a
Ante meridiem et Post meridiem en minuscules
am ou pm
A
Ante meridiem et Post meridiem en majuscules
AM ou PM
B
Heure Internet Swatch
000 Ã 999
g
Heure, au format 12h, sans les zéros initiaux
1 Ã 12
G
Heure, au format 24h, sans les zéros initiaux
0 Ã 23
h
Heure, au format 12h, avec les zéros initiaux
01 Ã 12
H
Heure, au format 24h, avec les zéros initiaux
00 Ã 23
i
Minutes avec les zéros initiaux
00 Ã 59
s
Secondes, 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
Fuseau horaire du serveur
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.
Les caractères non reconnus seront imprimés tels quel.
"Z" retournera toujours 0 lorsqu'il est utilisé avec
gmdate().
timestamp
Le paramètre optionnel timestamp est un timestamp
Unix de type entier qui vaut par défaut l'heure courante locale si
le paramètre timestamp n'est pas fourni. En d'autres
termes, il faut par défaut la valeur de la fonction time().
Valeurs de retour
Retourne une date formattée. Si une valeur non-numérique est utilisée
dans le paramètre timestamp, FALSE sera retourné et une erreur
de niveau E_WARNING est émise.
Erreurs / Exceptions
Chaque appel à une fonction date/heure génèrera un message de type
E_NOTICE si le fuseau horaire n'est pas valide.,
et/ou un message de type E_STRICT si vous
utilisez la configuration du système ou la variable d'environnement
TZ. Voir aussi date_default_timezone_set()
Historique
Version
Description
5.1.0
L'intervalle de validité d'un timestamp va généralement du
Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT.
(Ces dates correspondent aux valeurs minimales et maximales des
entiers 32 bits non-signés). Cependant, avant PHP 5.1.0, cette intervalle va du
01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
5.1.0
Émet un message de type E_STRICT et E_NOTICE
lors d'erreurs de fuseaux horaires.
5.1.1
Il y a plusieurs constantes utiles
de formats date/heure standarts qui peuvent être utilisées pour spécifier le paramètre
format.
Exemples
Exemple 1. Exemple avec date()
<?php // Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1 date_default_timezone_set('UTC');
// Affichage de quelque chose comme : Monday echo date("l");
// Affichage de quelque chose comme : Monday 15th of August 2005 03:12:46 PM echo date('l dS \of F Y h:i:s A');
// Affiche : July 1, 2000 is on a Saturday echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* utilise les constantes dans le paramètre format */ // Affichage de quelque chose comme : Mon, 15 Aug 2005 15:12:46 UTC echo date(DATE_RFC822);
// Affichage de quelque chose comme : 2000-07-01T00:00:00+00:00 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000)); ?>
Vous pouvez faire afficher un caractère spécial dans la chaîne de format
en le protégeant par un anti-slash. Si le caractère est lui-même une séquence
incluant un anti-slash, vous devrez protéger aussi l'anti-slash.
Exemple 2. Protection des caractères dans la fonction date()
<?php // Affichage de quelque chose comme : Wednesday the 15th echo date("l \\t\h\e jS"); ?>
Il est possible d'utiliser date() et
mktime() ensemble pour générer
des dates dans le futur ou dans le passé.
Note :
Cette méthode est plus sûre que simplement ajouter ou retrancher
le nombre de secondes dans une journée ou un mois à un timestamp,
à cause des heures d'hiver et d'été.
Voici maintenant quelques exemples de formatage avec
date(). Notez que vous devriez échapper tous
les autres caractères, car s'ils ont une signification
spéciale, ils risquent de produire des effets secondaires
indésirables. Notez aussi que les versions futures de PHP
peuvent attribuer une signification à des lettres qui sont
actuellement inertes. Lorsque vous échappez les caractères,
pensez à utiliser des guillemets simples, pour que les
séquences \n ne deviennent pas des
nouvelles lignes.
Exemple 4. Exemple avec date()
<?php // Aujourd'hui, le 12 Mars 2001, 10:16:18 pm
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm $today = date("m.d.y"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // C'est le 12th jour. $today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:17 m est le mois $today = date("H:i:s"); // 17:16:17 ?>
Pour formater des dates dans d'autres langues, utilisez les fonctions
setlocale() et strftime()
au lieu de la fonction date().
Notes
Note :
Pour générer un timestamp à partir d'une représentation de date,
vous pouvez utiliser la fonction strtotime(). De plus,
certaines bases de données disposent de fonctions pour convertir leurs
propres formats de date en timestamps (par exemple,
MySQL et sa fonction UNIX_TIMESTAMP()).
Astuce :
Un timestamp représentant le début de la requête est disponible dans la
variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.