Ich versuche ein Skript zu schreiben, in das ich eine beliebige Zeitzone konvertieren UTC
und umkehren möchte . Aber von einigen, bei denen ich erfahren habe, dass beim Konvertieren einer Zeitzone in UTC
mit oder ohne DST-Berücksichtigung dieselbe UTC
Zeit gegeben ist. Zum Beispiel: Wenn ich versuche, dieses zu konvertieren:
$mytime = '2011-03-31 05:06:00.000';
$myzone = 'America/New_York';
zu UTC mit DST und ohne DST bekomme ich ..
(New_York->UTC DST=Yes)2011-03-31 09:06:00
(New_York->UTC DST=No)2011-03-31 09:06:00 ..........
Ist das richtig? Wenn ja, warum dann ??? Bitte jemand gibt mir deine Antworten.
Antworten:
Nein, UTC selbst hat niemals Sommerzeit. Es ist der konstante Bezugsrahmen, zu dem andere Zeitzonen relativ ausgedrückt werden.
Von der Wikipedia UTC-Seite :
Mit anderen Worten, wenn eine Zeitzone die Sommerzeit beobachtet, ändert sich ihr Versatz von der UTC, wenn es einen Sommerzeitübergang gibt, aber das ist die Zeitzone, die die Sommerzeit beobachtet, nicht die UTC.
Ohne viel über die Handhabung von PHP-Zeitzonen zu wissen, erscheint es mir seltsam, dass Sie in einer Konvertierung "mit Sommerzeit" oder "ohne Sommerzeit" angeben können - die Zeitzonen selbst geben an, wann die Sommerzeit einsetzt ... sollte es nicht sein etwas, das Sie selbst angeben.
quelle
date_sunrise
Funktion, die Ihnen sagt, wann die Sonne aufgeht. Ich bin nicht sicher, ob die Sommerzeit für die Konvertierung benötigt wird, aber es ist ein erstklassiger Bürger eines Datumsobjekts : php.net/manual/en/function.date.php .Ich habe das gleiche Problem mit diesem Code:
Es ist jetzt Sommer und die Zeit, die dieser Code erzeugt, liegt eine Stunde zurück - daher glaube ich nicht, dass sich die UTC-Zeit in PHP an die Sommerzeit anpasst.
Seien Sie interessant zu sehen, ob jemand die Lösung hat ...
BEARBEITEN:
Fand diesen Code in einem Forum, funktioniert perfekt !!
Sie können dann das aktuelle Datum und die aktuelle Uhrzeit mit $ TIME aufrufen. Die Ausgabe kann angepasst werden, um sie anders anzuzeigen, indem das Bit innerhalb des Datums () -Tags geändert wird. Wenn Sie die Ausgabe von date () anpassen möchten, verwenden Sie dieses Handbuch: http://php.net/manual/en/function.time.php
Hoffe das hilft :)
quelle