HOWTO · PHP
New Yorker Zeitzone in PHP
Legen Sie die Zeitzone America/New_York in PHP fest und formatieren Sie ein New Yorker Datum oder eine Uhrzeit mit date().
Auf dieser Seite
Um ein Datum oder eine Uhrzeit in New York anzuzeigen, legen Sie die Zeitzone von PHP auf America/New_York fest, bevor Sie date() aufrufen. Der Bezeichner lautet America/New_York; New_York allein ist nicht der vollständige PHP-Zeitzonenbezeichner.
New Yorker Zeitzone in PHP
Die unterstützten Zeitzonenbezeichner von PHP sind im Handbuch aufgeführt. Legen Sie die Standardzeitzone mit date_default_timezone_set() fest und prüfen Sie anschließend mit date_default_timezone_get() den konfigurierten Bezeichner. Die Setter-Funktion gibt true zurück, wenn sie die Zeitzone akzeptiert, und false, wenn sie dies nicht tut. Prüfen Sie dieses Ergebnis, wenn der Bezeichner aus einer Konfiguration oder einer Benutzereingabe stammt, und behandeln Sie ein false-Ergebnis, bevor Sie ein Datum formatieren.
Dieses vollständige Beispiel stellt die New Yorker Zeit ein, bestätigt die konfigurierte Zeitzone und formatiert das lokale Datum und die lokale Uhrzeit:
<?php
$configured = date_default_timezone_set('America/New_York');
if ($configured) {
echo 'Timezone: ' . date_default_timezone_get() . PHP_EOL;
echo 'Date: ' . date('Y-m-d') . PHP_EOL;
echo 'Time: ' . date('H:i:s') . PHP_EOL;
}
Das Beispiel gibt den konfigurierten Bezeichner aus, gefolgt von dem Datum und der Uhrzeit zum Zeitpunkt der Ausführung. Diese beiden letzten Werte hängen von der Ausführungszeit ab. Die Formatzeichenkette steuert, welche Teile des lokalen Datums und der lokalen Uhrzeit erscheinen. In Y-m-d ist Y ein vierstelliges Jahr, m ein zweistelliger Monat und d ein zweistelliger Tag des Monats. H:i:s verwendet eine Stunde im 24-Stunden-Format, Minuten und Sekunden; verwenden Sie h:i:sa für eine Stunde im 12-Stunden-Format mit einem am- oder pm-Suffix. Jeder Aufruf von date() verwendet die zuvor festgelegte Standardzeitzone, sodass das Datum um Mitternacht vom lokalen Datum des Servers abweichen kann.
Diese Formatzeichenketten erzeugen beispielsweise gängige Datumsformate: Y/m/d, d/m/Y, Y.m.d und d-m-Y. Das Formatzeichen l schreibt den Wochentag aus, während das kleingeschriebene h und das großgeschriebene H jeweils die 12-Stunden- bzw. die 24-Stunden-Zeit auswählen. Wählen Sie ein Format, das zum Anzeigekontext passt, und beachten Sie, dass date() die aktuelle Uhrzeit formatiert, sofern Sie ihr keinen Zeitstempel als zweites Argument übergeben.
Die Zeitzoneneinstellung gilt für den aktuellen PHP-Ausführungskontext und ändert den Standard, den davon abhängige Datums- und Zeitfunktionen verwenden. Wenn die Anwendung Zeitzoneneinstellungen bereits verwaltet, legen Sie die Zeitzone an der entsprechenden Anfrage- oder Anwendungsgrenze fest, damit nicht zusammenhängender Code nicht von einem unerwarteten Standard abhängt. Verwenden Sie beim Festlegen und Prüfen der Zeitzone dieselbe Schreibweise des Bezeichners, America/New_York.
Für einen bestimmten Zeitpunkt statt der aktuellen Uhrzeit übergeben Sie einen Unix-Zeitstempel als zweites Argument an date(). Beispielsweise formatiert date('Y-m-d H:i:s', $timestamp) diesen Zeitpunkt mit der konfigurierten Zeitzone. Ein Zeitstempel stellt einen Augenblick dar; die Zeitzone bestimmt seine lokale Uhr- und Kalenderanzeige. Diese Unterscheidung ist nützlich, wenn Ereigniszeiten in einer Datenbank gespeichert und Lesern in New York angezeigt werden.
New York beachtet saisonale Zeitumstellungen, sodass sein UTC-Offset im Jahresverlauf nicht konstant ist. Mit dem IANA-Bezeichner America/New_York kann PHP die relevanten Zeitzonenregeln für das zu formatierende Datum anwenden. Vermeiden Sie es, ihn durch einen festen Offset wie -05:00 zu ersetzen, wenn die Anwendung das ganze Jahr über die lokale New Yorker Zeit benötigt.
Wenn ein Projekt Zeitzonen zentral konfiguriert, bewahren Sie diese Richtlinie an einer geeigneten Stelle auf und lassen Sie die Datumsformatierung ihr konsequent folgen.