Zeitzone mit DST-Behandlung von PHP

7

Ich arbeite an einer Kalenderanwendung. Erstellen Sie in diesem Benutzer aus verschiedenen Zeitzonen Ereignisse. Ich denke, folgende Methode zu folgen, um Ereigniszeit in UTC zu speichern und sie in Ortszeit des Benutzers anzuzeigen. Hinweis: Der Benutzer hat seine bevorzugte Zeitzoneneinstellung.

So speichern Sie die Startzeit des Ereignisses als UTC-Zeitstempel:

%Vor%

Um die Startzeit des Ereignisses in der Zeitzone des Benutzers zu erhalten:

%Vor%

Wo:

%Vor%

Meine Fragen:

  • Ob die oben verwendeten PHP-APIs die Sommerzeit für alle Regionen berücksichtigen?
  • Die DST Zeit selbst ändert sich in verschiedenen Jahren, wie erhält PHP Informationen dazu? Müssen wir PHP upgraden? Wenn ja, müssen wir alle oder bestimmte PHP-Bibliotheken aktualisieren?

Referenzen:  - does-phps-date-default -timezone-set-adjust-to-daylight-saving  - get-timezone-offset-for-a-given-location

    
Krishna Shetty 04.12.2012, 08:30
quelle

2 Antworten

13

Du übertreibst das viel zu sehr. Um zwischen zwei Zeitzonen mit DateTime zu konvertieren, mache folgendes:

%Vor%

Dies konvertiert die lokale Zeitzone eines Benutzers in UTC. Um umgekehrt zu gehen und die Zeit in der lokalen Zeit des Benutzers anzuzeigen, vertauschen Sie die beiden Zeitzonen.

Ja, PHP kümmert sich um DST. Die notwendigen Konvertierungsregeln sind Teil der PHP-Installation. Sie können sie auf dem neuesten Stand halten, indem Sie PHP aktualisieren, oder indem Sie das timezonedb aktualisieren: Ссылка .

    
deceze 04.12.2012, 08:36
quelle
4

Ja php api berücksichtigt DST. Die meiste Zeit können Sie die Zeitumrechnung sicher so durchführen, wie Deceze es gezeigt hat. Das Problem ist, dass es nicht immer möglich / machbar oder sinnvoll ist. Beachten Sie das folgende Beispiel: In Polen (2013) am 27.10 um 3 Uhr wird Ihre Uhr um eine Stunde zurückgestellt, um auf die Standardzeit (Offset UTC + 01: 00) am 31. März um 2 Uhr Uhr um 1 Uhr vorzuschalten und auf Sommer umzustellen Zeit (Offset UTC + 02: 00). Schauen wir uns nun an, wie "Echtzeit" in Grenwich / UTC funktioniert und wie die Konvertierung von PHP aus Europa / Warschau nach UTC funktioniert:

%Vor%

Wie Sie zwischen 2 Uhr morgens und 3 Uhr morgens sehen können, kann PHP nicht wissen, welche Stunde (von vor / nach der Anpassung) es nicht zuverlässig konvertieren kann. Hoffe, das hilft jemandem bei seinen Beratungen ;-)

    
Artur 25.09.2013 11:44
quelle

Tags und Links