Wie kann ich mit der date () -Funktion von PHP einen UTC / GMT +/- Zeitstempel erhalten? Zum Beispiel, wenn ich es versuche
date("Y-m-d H:i:s", time());
Ich werde einen Unix-Zeitstempel erhalten. Ich muss jedoch einen UTC / GMT-Zeitstempel mit der Zeichenfolge GMT / UTC +/- 0400 oder GMT / UTC +/- 1000 basierend auf den lokalen Zeitangaben erhalten.
Antworten:
Bei Verwendung
gmdate
wird immer ein GMT-Datum zurückgegeben. Die Syntax ist dieselbe wie fürdate
.quelle
gmdate("U") == time()
.) Klingt nach potenziell fehlerhaftem Verhalten. Überprüfen Sie den PHP-Projekt und melden Sie einen Fehler.time()
"Anzahl der Sekunden seit der Unix-Epoche (1. Januar 1970 00:00:00 GMT)" zurückgegeben. HinweisGMT
. Die Tatsache, dass Ihr System dies standardmäßig zur Anzeige in Ihre Zeitzone konvertiert , ist eine Benutzerfreundlichkeit. Intern ist es immer GMT.Ein einfaches gmdate () wird ausreichen
quelle
Wie bereits hier beantwortet , können Sie seit PHP 5.2.0 die
DateTime
Klasse verwenden und die UTC-Zeitzone mit einer Instanz von angebenDateTimeZone
.In der Dokumentation zu DateTime __construct () wird vorgeschlagen , "now" als ersten Parameter zu übergeben, wenn eine DateTime-Instanz erstellt und eine Zeitzone angegeben wird, um die aktuelle Zeit abzurufen.
quelle
DateTime
? Wenn ich es selbst laufen lasse, scheint es ohne sie gut zu funktionieren.namespace A
Deklaration enthält, auf die PHPDateTime
verweistA\DateTime
, was falsch ist. Das Hinzufügen des Backslash behebt das Problem. Es ist meiner Meinung nach eine gute Angewohnheit, auch wenn Sie noch keine Namespaces verwenden.quelle
quelle
UTC-Datum erhalten
UTC-Zeitstempel erhalten
Das Ergebnis wird nicht anders sein, selbst wenn Sie
date_default_timezone_set
Ihren Code haben.quelle
Neben dem Aufrufen können
gmdate
Sie diesen Code auch vor den Rest des Codes stellen:Dadurch werden Ihre datums- / zeitbezogenen Anrufe zur Verwendung der GMT / UTC-Zeitzone ausgeführt.
quelle
Sie können die Funktion gmmktime ohne Argumente verwenden, um den aktuellen UTC-Zeitstempel abzurufen :
gmmktime funktioniert nur, wenn Ihre Serverzeit UTC verwendet. Zum Beispiel ist mein Server auf US / Pacific eingestellt. Die oben aufgeführte Funktion spiegelt die pazifische Zeit wider.
quelle
Ihr benutzerdefiniertes Format fehlt nur
O
, um Ihnen die Zeitzonenversätze zur Ortszeit anzuzeigen.Doch für maximierten Portabilität / Interoperabilität, würde ich mit dem empfehlen ISO8601 Datumsformat
c
Sie können auch verwenden
gmdate
und die Zeitzonen-Offset-Zeichenfolge wird immer sein+00:00
quelle
Sie können Folgendes verwenden, um die UTC-Zeit abzurufen:
quelle
quelle
Unten finden Sie den PHP-Code, um die aktuelle UTC-Zeit (Coordinated Universal Time) abzurufen
quelle