Es scheint, gibt es viele Möglichkeiten, Datum und Uhrzeit massaging in PHP nähern. Ich bin normalerweise nur mit Ortszeit beschäftigt. Heute muss ich in UTC arbeiten.Welche PHP-Datum und Zeit-Tools für GMT Offset verwenden
ich gegen eine API bin Abfrage, die Daten, die sie mir über einen beliebigen Datensatz geben ist: erstellt: Do, 18. Juni 2009 21.44.49 0.000 * Dokumentierte als ‚UTC Rekord Erstellungszeit‘
UTC_Offset: -28.800 * Differenz zwischen den Benutzern wieder
ich brauche, dass der Benutzer zu welcher Zeit und Datum zu zeigen, die Daten in einer einfachen Zeichenfolge konvertieren wurde in ihrer Ortszeit vorgelegt.
Ich glaube, über das übersetzt, wenn in Kalifornien zum Beispiel:. Donnerstag 18. Juni 2009 02.44.49
Mein Ziel auf einen Zeitwert zu erhalten ist, die ich bisher passieren kann () für die einfache Formatierung in einem "hübschen" Format.
Ist es wirklich so einfach wie das Konvertieren der oben erstellten Zeit in Sekunden aus der Epoche, das Hinzufügen des Offsets und das anschließende Übergeben an das Datum()? Irgendwelche Gotchas, auf die du achten musst?
$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;
echo date(DATE_RFC822, $localized_time);
Dank
Danke. Das DateTime-Objekt-Handbuch ist ziemlich tief, ich werde es überprüfen. Was ich aber immer noch mache, ist, wie man mit dem Offset richtig umgehen kann. Ich habe aus der Dokumentation, was ein UTC-Wert für $ created_time sein soll. Der einzige andere Datum/Uhrzeit-Wert, den ich bekomme, ist ein Offset. Benutzerdaten kommen von überall auf der Welt, der Offset ist unterschiedlich, je nachdem, in welcher Zone sie sind. Ich nehme an, dass ich das Objekt nur auf Sekunden verschiebe, den Offset hinzufüge und das in eine hübsche Zeichenkette umwandle? –
Die Idee ist sowohl mit DateTime als auch mit strtotime, wenn Sie die Zeitzone in einem Standardformat angeben, wird es automatisch in Ihre eigene Zeitzone umgewandelt. Anders herum (siehe den zweiten Kommentar), indem Sie die Standardzeitzone vorübergehend ändern oder dem DateTime-Objekt ein DateTimeZone-Objekt geben – Evert