8.19 Dates et heures
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . checkdate . date_sunrise . date_sunset ->date . getdate . gettimeofday . gmdate . gmmktime . gmstrftime . idate . localtime . microtime . mktime . strftime . strptime . strtotime . time
|
8.19.10 date()Formate une date/heure locale[ Exemples avec date ] PHP 3, PHP 4 , PHP 5
string
date (
string
format
,
int
timestamp
)
date
retourne une date sous forme d'une chaîne, au format
donné par la chaîne
format
.
La date est fournie par le paramètre
timestamp
,
sous la forme d'un timestamp. Par défaut, la date courante est
utilisée.
Note |
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). Sur les systèmes Windows, cette intervalle va du
01-01-1970 au 19-01-2038.
|
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() ).
|
Les caractères suivants sont utilisés pour spécifier le format :
Caractère |
Description |
Exemple de valeur |
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
|
c
|
Date au format ISO 8601 (ajouté en PHP 5) |
2004-02-12T15:19:21+00:00 |
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
|
F
|
Mois, textuel, version longue; en anglais, comme
January
ou
December
|
January
à
December
|
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
|
I
(i majuscule) |
L'heure d'été est activée ou pas |
1
si oui,
0
sinon. |
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
|
L
|
Est ce que l'année est bissextile |
1
si bissextile,
0
sinon. |
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
|
O
|
Différence d'heures avec l'heure de Greenwich (GMT),
exprimée en heures |
Exemple :
+0200
|
r
|
Format de date RFC 822 |
Exemple :
Thu, 21 Dec 2000 16:01:07 +0200
|
s
|
Secondes, avec zéros initiaux |
00
à
59
|
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
|
t
|
Nombre de jours dans le mois |
28
à
31
|
T
|
Fuseau horaire du serveur |
Exemples :
EST
,
MDT
... |
U
|
Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT) |
Voir aussi
time
|
w
|
Jour de la semaine au format numérique |
0
(pour dimanche) à
6
(pour samedi) |
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) |
Y
|
Année, 4 chiffres |
Exemples :
1999
et
2003
|
y
|
Année, 2 chiffres |
Exemples :
99
et
03
|
z
|
Jour de l'année |
0
à
366
|
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
à
43200
|
Les caractères non reconnus seront imprimés tels quel.
"
Z
" retournera toujours "0" lorsqu'il est utilisé avec
gmdate
.
Exemple avec date |
<?php echo (date("l dS of F Y h:i:s A")); echo ("Le 14 Juillet 2004 tombe un " . date("l", mktime(0,0,0,7,14,2004))); ?>
|
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.
Protection des caractères avec date |
<?php echo date("l \\t\h\e jS"); // affiche 'Saturday the 8th' // \t représente une tabulation ?>
|
Il est possible d'utiliser
date
et
mktime
ensemble pour générer
des dates dans le futur ou dans le passé.
Exemples avec date et mktime |
<?php $demain = mktime(0, 0, 0, date("m") , date("d") + 1, date("Y")); $le_mois_dernier = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $l_an_prochain = mktime(0, 0, 0, date("m"), date("d"), date("Y") + 1); ?>
|
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.
Formatage avec date |
<?php // Aujourd'hui, le 12 Mars 2001, 10:16:18 pm
$aujourdhui = date("F j, Y, g:i a"); // March 12, 2001, 10:16 pm $aujourdhui = date("m.d.y"); // 03.12.01 $aujourdhui = date("j, m, Y"); // 12, 3, 2001 $aujourdhui = date("Ymd"); // 20010312 $aujourdhui = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 12-03-01, 1631 1618 6 Monpm01 $aujourdhui = date('\C\'\e\s\t\ \l\e\ jS \j\o\u\r\.'); // C'est le 12th jour. $aujourdhui = date("D M j G:i:s T Y"); // Mon Mar 12 15:16:08 MST 2001 $aujourdhui = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois $aujourdhui = date("H:i:s"); // 10:16:18
// notation française
$aujourdhui = date("d/m/y"); // 12/03/01 $aujourdhui = date("d/m/Y"); // 12/03/2001 ?>
|
Pour formater des dates dans d'autres langues, utilisez les fonctions
setlocale
et
strftime
.
Voir aussi
getlastmod
,
time
,
strftime
,
gmdate
et
mktime
.
|