PHPスクリプトで現在のWindows時間を取得するにはどうすればよいですか?PHPでWindows時間を取得する
time()
を使用すると、タイムゾーンを認識し、サーバーでDSTが実際に有効になっているかどうかが無視されるため、動作していないようです。たとえば、タイムゾーンが "America/Los_Angeles"に設定されているがDSTがチェックされていない(Windowsマシン)場合、今日の日付が9月1日であれば、ウィンドウ時間は午後1時ですが、PHP time()
は午後2時を返します。
サーバーのWindows時間を取得するにはどうすればよいですか? (PHP 5.2.14を使用します)。
に "アメリカ/ Los_Angeles" 問題に
- セットタイムゾーンを再現し、 "夏時間" のチェックボックスをオフにします。日付を2010年9月1日16:00:00 PMに設定します。
- 出力は、アメリカ/ Los_Angeles 17時○○分00秒である
echo date_default_timezone_get(), date("H:i:s", time());
それを実行した後、次のように単純なPHPスクリプトを作成します。 DSTによる1時間の違いに注目してください。
'時間()'タイムゾーンニュートラルなUNIXタイムスタンプを返します。
も@Pekkaはここに別の手動の回避策を持っていました。あなたはそれが1時間遅れているとどのように判断していますか? – deceze'date_default_timezone_get()は何と言っていますか?いくつかのコードを表示できますか? 'time()'がオフであるとあなたはどのように判断していますか? 'gmdate(" r ")'はGMTバージョンですが、 –
'date(" r ")'はシステム設定とタイムゾーンに従ってローカル時刻を与えています。それ以外の場合は、['php.ini'の問題](http://de3.php.net/manual/en/datetime.configuration.php)かもしれません。 – mario