W3docs

gmstrftime()

La fonction gmstrftime() en PHP formate la date et l'heure en UTC/GMT avec des spécificateurs % localisables. Dépréciée en 8.1, supprimée en 8.2.

Qu'est-ce que la fonction gmstrftime() en PHP ?

La fonction gmstrftime() formatait une date et une heure sous forme de chaîne dans le fuseau horaire UTC/GMT, en utilisant des spécificateurs % à la manière de strftime(), dont le texte pouvait être localisé via la locale courante (définie avec setlocale()). Elle se comportait exactement comme strftime(), à ceci près que la sortie était toujours en GMT plutôt qu'en heure locale du serveur.

Important : gmstrftime() a été dépréciée en PHP 8.1 et supprimée en PHP 8.2. Elle n'existe plus dans les versions modernes de PHP, et le nouveau code doit utiliser un remplacement. Le reste de cette page explique la fonction à titre de référence et présente les équivalents à utiliser aujourd'hui : gmdate() pour les formats fixes et IntlDateFormatter pour une sortie adaptée à la locale.

Cette page couvre la signature originale et les spécificateurs de format, le remplacement moderne gmdate(), comment mapper les anciens spécificateurs % vers les nouveaux caractères de format, et comment obtenir correctement les noms de mois et de jours traduits dans la locale souhaitée.

Syntaxe

string gmstrftime(string $format, ?int $timestamp = null)
  • $format — une chaîne de spécificateurs % décrivant la sortie souhaitée.
  • $timestamp — un timestamp Unix optionnel. S'il est omis, l'heure actuelle est utilisée.

Spécificateurs courants acceptés : %Y (année sur 4 chiffres), %m (mois, 0112), %d (jour, 0131), %H (heure sur 24 h, 0023), %M (minute), %S (seconde), %B (nom du mois complet), %A (nom du jour de la semaine complet).

Le remplacement moderne : gmdate()

Puisque gmstrftime() n'existe plus, le remplacement direct pour les formats fixes de type machine est gmdate(). Elle produit également une sortie UTC, mais utilise des caractères de format à la manière de date() (sans %) :

php— editable, runs on the server

Cela affiche la date et l'heure UTC courantes au format YYYY-MM-DD HH:MM:SS, par exemple 2026-06-21 08:04:38.

Correspondance entre les anciens spécificateurs et gmdate()

Significationgmstrftime()gmdate()
Année sur 4 chiffres%YY
Mois (0112)%mm
Jour (0131)%dd
Heure (0023)%HH
Minute%Mi
Seconde%Ss
Nom du mois complet%BF
Nom du jour de la semaine complet%Al

Ainsi, gmstrftime("%A, %d %B %Y") devient gmdate("l, d F Y").

Formatage UTC adapté à la locale

Ce que gmdate() ne fait pas, c'est traduire les noms de mois et de jours de la semaine dans la locale courante — gmdate() renvoie toujours des noms en anglais. Si vous utilisiez gmstrftime() avec setlocale() pour obtenir une sortie traduite (par exemple, des noms de mois en français), utilisez plutôt IntlDateFormatter de l'extension intl :

<?php
$formatter = new IntlDateFormatter(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::NONE,
    'UTC'
);
echo $formatter->format(time());
?>

Cela affiche la date complète avec les noms de mois et de jours en français, en UTC — l'équivalent moderne, sûr pour la locale, de l'ancien schéma setlocale() + gmstrftime().

Pourquoi le formatage UTC est important

Formater en UTC (ce que faisaient gmstrftime() et ce que fait maintenant gmdate()) est utile chaque fois que vous stockez ou comparez des timestamps indépendamment du fuseau horaire de l'utilisateur. La journalisation, les réponses d'API, les valeurs en base de données et la planification inter-régions bénéficient toutes d'une référence unique et non ambiguë. La conversion vers un fuseau horaire local s'effectue uniquement au moment de l'affichage — généralement avec les classes DateTime / DateTimeZone.

Conclusion

gmstrftime() offrait un moyen rapide de formater la date et l'heure UTC avec des spécificateurs à la manière de strftime(), mais elle a été supprimée en PHP 8.2. Pour les formats fixes, remplacez-la par gmdate() en traduisant les spécificateurs à l'aide du tableau ci-dessus ; pour les noms de mois et de jours traduits selon la locale, utilisez IntlDateFormatter. Pour explorer les fonctions associées, consultez strftime(), gmmktime() et le guide général PHP date et heure.

Pratique

Pratique
Que fait la fonction gmstrftime() en PHP ?
Que fait la fonction gmstrftime() en PHP ?
Was this page helpful?