DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_formatRetourne une date formatée suivant le format fourni

Description

Style orienté objet

publicDateTimeInterface::format(string$format): string
publicDateTimeImmutable::format(string$format): string
publicDateTime::format(string$format): string

Style procédural

Retourne une date formatée suivant le format fourni.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

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 formatDescriptionExemple de valeurs retournées
Jour------
dJour du mois, sur deux chiffres (avec un zéro initial)01 à 31
DJour de la semaine, en trois lettres (et en anglais - par défaut : en anglais, ou sinon, dans la langue locale du serveur)Mon à Sun
jJour du mois sans les zéros initiaux1 à 31
l ('L' minuscule)Jour de la semaine, textuel, version longue, en anglaisSunday à Saturday
NReprésentation numérique ISO 8601 du jour de la semaine1 (pour Lundi) à 7 (pour Dimanche)
SSuffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettresst, nd, rd ou th. Fonctionne bien avec j
wJour de la semaine au format numérique0 (pour dimanche) à 6 (pour samedi)
zJour de l'année0 à 365
Semaine------
WNuméro de semaine dans l'année ISO 8601, les semaines commencent le lundiExemple : 42 (la 42ème semaine de l'année)
Mois------
FMois, textuel, version longue; en anglais, comme January ou DecemberJanuary à December
mMois au format numérique, avec zéros initiaux01 à 12
MMois, en trois lettres, en anglaisJan à Dec
nMois sans les zéros initiaux1 à 12
tNombre de jours dans le mois28 à 31
Année------
LEst ce que l'année est bissextile1 si bissextile, 0 sinon.
oLa 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ée à la place.Exemples : 1999 ou 2003
X Une représentation numérique complète étendue d'une année, d'au moins 4 chiffres, avec un - pour les années avant l'ère commune et un + pour les années de l'ère commune. Exemples : -0055, +0787, +1999, +10191
x Une représentation numérique complète étendue si nécessaire, ou une représentation numérique complète standard si possible (comme Y). Au moins quatre chiffres. Les années antérieures à l'ère commune sont préfixées par un -. Les années au-delà (et y compris) du 10000 sont préfixées par un +. Exemples : -0055, 0787, 1999, +10191
YUne représentation numérique complète d'une année, au moins 4 chiffres, avec - pour les années av. J.-C.Exemples : -0055, 0787, 1999, 2003, 10191
yAnnée sur 2 chiffresExemples : 99 ou 03
Heure------
aAnte meridiem et Post meridiem en minusculesam ou pm
AAnte meridiem et Post meridiem en majusculesAM ou PM
BHeure Internet Swatch000 à 999
gHeure, au format 12h, sans les zéros initiaux1 à 12
GHeure, au format 24h, sans les zéros initiaux0 à 23
hHeure, au format 12h, avec les zéros initiaux01 à 12
HHeure, au format 24h, avec les zéros initiaux00 à 23
iMinutes avec les zéros initiaux00 à 59
sSecondes avec zéros initiaux00 à 59
u Microsecondes. 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. Même note que pour u. Exemple: 654
Fuseau horaire------
eL'identifiant du fuseau horaireExemples : UTC, GMT, Atlantic/Azores
I (i majuscule)L'heure d'été est activée ou pas1 si oui, 0 sinon.
ODifférence d'heures avec l'heure de Greenwich (GMT), sans deux-points entre les heures et les minutesExemple : +0200
PDifférence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutesExemple : +02:00
p Identique à P, mais retourne Z au lieu de +00:00 (disponible à partir de PHP 8.0.0) Exemples : Z ou +02:00
TAbréviation du fuseau horaire, si connu ; sinon décalage depuis GMTExemples : EST, MDT, +05
ZDécalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négatif, et à l'est, il est positif.-43200 à 50400
Date et Heure complète------
cDate au format ISO 86012004-02-12T15:19:21+00:00
rFormat de date » RFC 2822/» RFC 5322Exemple : Thu, 21 Dec 2000 16:01:070200
USecondes 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().

Valeurs de retour

Retourne la date formatée, sous forme de chaîne de caractères, en cas de succès.

Historique

VersionDescription
8.2.0 Les caractères de format X ou x ont été ajoutés.
8.0.0 Le caractère de format p a été ajouté.

Exemples

Exemple #1 Exemple avec DateTime::format()

Style orienté objet

<?php
$date
= new DateTimeImmutable('2000-01-01');
echo
$date->format('Y-m-d H:i:s');
?>

Style procédural

<?php
$date
= date_create('2000-01-01');
echo
date_format($date, 'Y-m-d H:i:s');
?>

L'exemple ci-dessus va afficher :

2000-01-01 00:00:00

Exemple #2 Plus d'exemples

<?php
// set the default timezone to use.
date_default_timezone_set('UTC');

// now
$date = new DateTimeImmutable();

// Prints something like: Wednesday
echo $date->format('l'), "\n";

// Prints something like: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";


// prints something like: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>

Il est possible d'empêcher le développement d'un caractère reconnu dans la chaîne de format en le précédant d'un antislash. Si le caractère avec un antislash est déjà une séquence spéciale, il faudra peut-être également échapper l'antislash.

Exemple #3 Échappement de caractères lors du formatage

<?php
$date
= new DateTimeImmutable();

// prints something like: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>

Pour formater des dates dans d'autres langues, IntlDateFormatter::format() peut être utilisée à la place de DateTimeInterface::format().

Notes

Cette méthode n'utilise pas les locales. Tous les affichages seront en anglais.

Voir aussi

To Top