W3docs

gmdate()

Die PHP-Funktion gmdate(): UTC/GMT-Datum und -Uhrzeit formatieren, Syntax, Parameter, häufige Formatzeichen, gmdate() vs. date() und ausführbare Beispiele.

Einführung

Die Funktion gmdate() formatiert einen Unix-Zeitstempel als lesbaren Datums- und Uhrzeitstring in GMT/UTC und ignoriert dabei die konfigurierte Zeitzone des Servers. Sie ist das UTC-exklusive Pendant zu date(): Beide verwenden dieselben Formatzeichen, aber gmdate() gibt die Zeit immer in Greenwich Mean Time zurück. Das macht sie zum richtigen Werkzeug, wenn Sie einen zeitzonenunabhängigen Wert benötigen — zum Protokollieren eines Ereignisses, zum Erstellen eines HTTP-Headers oder zum Speichern eines normalisierten Zeitstempels, den jeder Server und jeder Client auf dieselbe Weise interpretiert.

Dieser Leitfaden behandelt die Syntax, Parameter, die häufigsten Formatzeichen, den Unterschied zwischen gmdate() und date() sowie mehrere ausführbare Beispiele.

Syntax

gmdate(string $format, ?int $timestamp = null): string

Parameter

  • $format (erforderlich) — Ein String aus Formatzeichen, die durch die entsprechenden Datums-/Uhrzeitwerte ersetzt werden. Jedes Zeichen, das nicht als Formatbezeichner erkannt wird, wird unverändert ausgegeben. Um einen Buchstaben literal auszugeben, der sonst interpretiert würde, maskieren Sie ihn mit einem Backslash (z. B. \T).
  • $timestamp (optional) — Ein Unix-Zeitstempel (Sekunden seit dem 1. Januar 1970, 00:00:00 UTC). Wird er weggelassen oder ist null, wird die aktuelle Zeit verwendet.

Die Funktion gibt das formatierte Datum/die formatierte Uhrzeit als String zurück, immer in UTC ausgedrückt, unabhängig von date_default_timezone_set() oder der date.timezone-Einstellung des Servers.

Häufige Formatzeichen

Dies sind die Bezeichner, die Sie am häufigsten verwenden werden. Sie sind identisch mit denen, die von date() verwendet werden.

ZeichenBedeutungBeispiel
Y4-stelliges Jahr2026
mMonat, 2 Stellen mit führender Null06
dTag des Monats, 2 Stellen04
HStunde, 24-Stunden-Format (00–23)05
iMinuten (00–59)45
sSekunden (00–59)57
DWochentag, KurztextSun
MMonat, KurztextMar
TZeitzonenabkürzungGMT
USekunden seit dem Unix-Epoch1646372757

Beispiele

Beispiel 1: Aktuelles GMT/UTC-Datum und aktuelle Uhrzeit ausgeben

Ohne Zeitstempel-Argument formatiert gmdate() den aktuellen Moment in UTC.

php— editable, runs on the server

Beispiel 2: Datum und Uhrzeit mit benutzerdefinierten Bezeichnern formatieren

Ein häufiges Muster ist das Erstellen eines lesbaren, RFC-ähnlichen Zeitstempels. Da gmdate() UTC verwendet, gibt der Bezeichner T immer GMT aus.

php— editable, runs on the server

Beispiel 3: Einen bestimmten Zeitstempel formatieren

Übergeben Sie einen Unix-Zeitstempel als zweites Argument, um einen festen Zeitpunkt anstelle von „jetzt" zu formatieren.

php— editable, runs on the server

gmdate() vs. date()

date() formatiert einen Zeitstempel unter Verwendung der lokalen Zeitzone, die für das Skript konfiguriert ist, während gmdate() immer in UTC formatiert. Bei gleichem Zeitstempel geben beide nur dann denselben String zurück, wenn die lokale Zeitzone UTC ist.

<?php

date_default_timezone_set('America/New_York');
$timestamp = 1646372757;

echo date('Y-m-d H:i:s', $timestamp);   // 2022-03-04 00:45:57 (local, UTC-5)
echo "\n";
echo gmdate('Y-m-d H:i:s', $timestamp); // 2022-03-04 05:45:57 (UTC)

Verwenden Sie gmdate(), wenn der Wert zeitzonenunabhängig sein muss (Protokolle, HTTP-Date-Header, API-Antworten, Datenbankspeicherung). Verwenden Sie date(), wenn Sie einem Benutzer eine Uhrzeit in seiner lokalen Zone anzeigen.

Wann gmdate() verwenden

  • Standardisierte Protokollierung — Speichern Sie Zeitstempel in UTC, damit Einträge von Servern in verschiedenen Regionen vergleichbar bleiben.
  • HTTP-Header und Caching — Header wie Expires und Last-Modified müssen in GMT ausgedrückt werden.
  • APIs und Datenaustausch — Geben Sie UTC zurück, damit Clients zuverlässig in jede lokale Zone konvertieren können.

Für die vollständige objektorientierte Datumsverarbeitung mit expliziter Zeitzonenkonvertierung bevorzugen Sie die Klassen DateTime und DateTimeZone. Um die Zeitstempel zu erstellen, die Sie an gmdate() übergeben, siehe gmmktime() (UTC) und mktime() (lokale Zeit).

Fazit

Die Funktion gmdate() bietet eine unkomplizierte Möglichkeit, Datum und Uhrzeit in UTC zu formatieren, wobei dieselben Formatzeichen wie bei date() verwendet werden, aber immer auf GMT verankert sind. Dieser Leitfaden hat Syntax, Parameter, die häufigsten Formatzeichen, den Unterschied zu date() und praktische Beispiele behandelt, um Ihnen die Integration in Ihre Projekte zu erleichtern. Weitere Informationen zur Arbeit mit Datum und Uhrzeit in PHP finden Sie in der Übersicht PHP Date and Time.

Übungen

Übung
Was ist der Zweck der gmdate()-Funktion in PHP?
Was ist der Zweck der gmdate()-Funktion in PHP?
Was this page helpful?