W3docs

gmstrftime()

Was ist die gmstrftime()-Funktion in PHP? Sie formatiert Datum und Uhrzeit in der UTC/GMT-Zeitzone und wurde in PHP 8.2 entfernt.

Was ist die gmstrftime()-Funktion in PHP?

Die gmstrftime()-Funktion formatierte Datum und Uhrzeit als Zeichenkette in der UTC/GMT-Zeitzone mithilfe von strftime()-artigen %-Bezeichnern, deren Text über das aktuelle Gebietsschema (gesetzt mit setlocale()) lokalisiert werden konnte. Sie verhielt sich genau wie strftime(), nur dass die Ausgabe immer GMT anstelle der lokalen Serverzeit war.

Wichtig: gmstrftime() wurde in PHP 8.1 als veraltet markiert und in PHP 8.2 entfernt. Es existiert nicht mehr in modernem PHP, daher muss neuer Code eine Alternative verwenden. Der Rest dieser Seite erklärt die Funktion zur Referenz und zeigt die Entsprechungen, die heute verwendet werden sollten: gmdate() für feste Formate und IntlDateFormatter für gebietsschemabewusste Ausgabe.

Diese Seite behandelt die ursprüngliche Signatur und Formatbezeichner, den modernen gmdate()-Ersatz, die Zuordnung alter %-Bezeichner zu den neuen Formatzeichen sowie die korrekte Methode zur Ausgabe lokalisierter Monats- und Wochentagnamen.

Syntax

string gmstrftime(string $format, ?int $timestamp = null)
  • $format — eine Zeichenkette mit %-Bezeichnern, die die gewünschte Ausgabe beschreiben.
  • $timestamp — ein optionaler Unix-Zeitstempel. Wird er weggelassen, wird die aktuelle Uhrzeit verwendet.

Häufig verwendete Bezeichner: %Y (4-stellige Jahreszahl), %m (Monat, 0112), %d (Tag, 0131), %H (24-Stunden-Format, 0023), %M (Minuten), %S (Sekunden), %B (vollständiger Monatsname), %A (vollständiger Wochentagname).

Der moderne Ersatz: gmdate()

Da gmstrftime() nicht mehr existiert, ist der direkte Ersatz für feste, maschinelle Formate gmdate(). Diese Funktion erzeugt ebenfalls UTC-Ausgabe, verwendet jedoch date()-artige Formatzeichen (ohne %):

php— editable, runs on the server

Dies gibt das aktuelle UTC-Datum und die Uhrzeit im Format YYYY-MM-DD HH:MM:SS aus, zum Beispiel 2026-06-21 08:04:38.

Zuordnung alter Bezeichner zu gmdate()

Bedeutunggmstrftime()gmdate()
4-stellige Jahreszahl%YY
Monat (0112)%mm
Tag (0131)%dd
Stunde (0023)%HH
Minute%Mi
Sekunde%Ss
Vollständiger Monatsname%BF
Vollständiger Wochentagname%Al

So wird aus gmstrftime("%A, %d %B %Y") das Äquivalent gmdate("l, d F Y").

Gebietsschemabewusste UTC-Formatierung

Was gmdate() nicht kann, ist die Übersetzung von Monats- und Wochentagnamen in das aktuelle Gebietsschema — gmdate() gibt immer englische Namen zurück. Wenn Sie gmstrftime() mit setlocale() für übersetzte Ausgaben (z. B. französische Monatsnamen) verwendet haben, nutzen Sie stattdessen IntlDateFormatter aus der intl-Erweiterung:

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

Dies gibt das vollständige Datum mit französischen Monats- und Wochentagnamen in UTC aus — das moderne, gebietsschemasichere Äquivalent des alten setlocale() + gmstrftime()-Musters.

Warum UTC-Formatierung wichtig ist

Die Formatierung in UTC (was gmstrftime() und jetzt gmdate() tun) ist nützlich, wenn Sie Zeitstempel unabhängig von der Zeitzone des Benutzers speichern oder vergleichen. Protokollierung, API-Antworten, Datenbankwerte und regionsübergreifende Planung profitieren alle von einer einzigen, eindeutigen Referenz. Die Konvertierung in eine lokale Zeitzone erfolgt nur zur Anzeigezeit — typischerweise mit den Klassen DateTime / DateTimeZone.

Fazit

gmstrftime() bot eine einfache Möglichkeit, UTC-Datum und -Uhrzeit mit strftime()-artigen Bezeichnern zu formatieren, wurde jedoch in PHP 8.2 entfernt. Ersetzen Sie es für feste Formate durch gmdate() und übersetzen Sie die Bezeichner mithilfe der obigen Tabelle; für gebietsschemabezogene Monats- und Tagnamen verwenden Sie IntlDateFormatter. Weitere verwandte Funktionen finden Sie unter strftime(), gmmktime() sowie im allgemeinen Leitfaden zu PHP-Datum und -Uhrzeit.

Übungen

Übung
Was macht die gmstrftime()-Funktion in PHP?
Was macht die gmstrftime()-Funktion in PHP?
Was this page helpful?