date
(PHP 4, PHP 5, PHP 7)
date — Formate une date/heure locale
Description
$format
[, int $timestamp
= time()
] )
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 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 formatage ci-dessous. Il existe aussi de nombreuses constantes de dates qui peuvent être utilisées, ce qui fait que
DATE_RSS
va remplacer le format "D, d M Y H:i:s".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 - par défaut : en anglais, ou sinon, dans la langue locale du serveur) 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 à 365 Semaine --- --- W Numéro de semaine dans l'année ISO-8601, 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 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 La numérotation de semaine dans l'année ISO-8601. C'est la même valeur que Y, excepté 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 u Microsecondes (ajouté en PHP 5.2.2). Notez que la fonction date() génèrera toujours 000000 vu qu'elle prend un paramètre de type entier, alors que la méthode DateTime::format() supporte les microsecondes si DateTime a été créée avec des microsecondes. Exemple : 654321 v Millisecondes (ajouté dans PHP 7.0.0). Même note que pour u. Exemple: 654 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) Voir aussi time() Les caractères non reconnus seront imprimés tels quels. "Z" retournera toujours 0 lorsqu'il est utilisé avec gmdate().
Note:
Sachant que cette fonction n'accepte que des entiers sous la forme de timestamp, le caractère u n'est utile que lors de l'utilisation de la fonction date_format() avec un timestamp utilisateur créé avec la fonction date_create().
-
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ètretimestamp
n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().
Valeurs de retour
Retourne une date formaté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
ou E_WARNING
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 |
5.1.1 |
Il y a plusieurs constantes utiles
de formats date/heure standards 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 8th of August 2005 03:12:46 PM
echo date('l jS \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 : Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// 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 antislash. Si le caractère est lui-même une séquence incluant un antislash, vous devrez protéger aussi l'antislash.
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é.
Exemple #3 Exemple avec date() et mktime()
<?php
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = 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.
Exemple #4 Exemple avec date()
<?php
// Aujourd'hui, le 10 Mars 2001, 5:16:18 pm, Fuseau horaire
// Mountain Standard Time (MST)
$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'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day (10ème jour du mois).
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (le format DATETIME de MySQL)
?>
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 timestamp (par exemple, MySQL et sa fonction » UNIX_TIMESTAMP()).
Un timestamp représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.
Voir aussi
- gmdate() - Formate une date/heure GMT/CUT
- idate() - Formate une date/heure locale en tant qu'entier
- getdate() - Retourne la date/heure
- getlastmod() - Retourne la date de dernière modification de la page
- mktime() - Retourne le timestamp UNIX d'une date
- strftime() - Formate une date/heure locale avec la configuration locale
- time() - Retourne le timestamp UNIX actuel
- strtotime() - Transforme un texte anglais en timestamp
- constantes de date
Version en cache
21/11/2024 15:28:31 Cette version de la page est en cache (à la date du 21/11/2024 15:28:31) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-date.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.