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:
Referenzen: - does-phps-date-default -timezone-set-adjust-to-daylight-saving - get-timezone-offset-for-a-given-location
Du übertreibst das viel zu sehr. Um zwischen zwei Zeitzonen mit DateTime
zu konvertieren, mache folgendes:
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: Ссылка .
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 ;-)
Tags und Links datetime php dst utc timezoneoffset