2

私はスクリプト全体で広く UNIX 時間を使用しており、通常はタイム ゾーンを次のように設定しています。

date_default_timezone_set('Europe/London');

これは、時計が先週末に 1 時間戻るまで正常に機能していました。これは、米国では時計がまだ戻っておらず、今週末まで戻らないという事実に関連していると思われます。

タイム ゾーンを UTC に設定することで問題を解決できますが、ヨーロッパ/ロンドンの設定が正しく機能しないのはなぜですか。私のサーバーは、私の知る限り、英国に拠点を置いています。

ありがとう、

アラン。

4

1 に答える 1

3

Europe/Londonは と同じタイムゾーンではありませんUTC。英国では夏時間が採用されているため、半年のタイムゾーン オフセットは UTC+1 です。先週末、ヨーロッパではサマータイムが終了しました。

ただし、Unix 時間を正しく使用していないと思われます。PHP では、time()時計が正しく設定されていれば、タイム ゾーンに関係なく常に現在の Unix タイムスタンプを返します。タイムスタンプが 1 時間急上昇している場合は、おそらく現地時間を UTC 時間として解釈しています。

補足として、タイム ゾーンを指定する場合は、使用する予定のタイム ゾーンを常に指定する必要があります。UTC を使用する場合は、 を指定しますUTC。英国で使用されているタイムゾーンを使用する場合は、 を指定しますEurope/London。何らかの理由で英国がタイムゾーンまたは DST 規則を変更した場合Europe/London、それらの変更で更新されます。

于 2013-10-31T12:56:37.067 に答える