1

何らかの理由で、date()関数がタイムゾーン調整された日付/時刻を出力していません。これをデバッグすると、奇妙な不一致が見つかりました。私のタイムゾーンは で定義されphp.iniていAmerica/New_Yorkます。これを呼び出すと:

echo ini_get('date.timezone');

これは私America/New_Yorkが期待するものです。ただし、これを呼び出すと:

echo date_default_timezone_get();

私は得るUTC。これはdate()、UTC タイムゾーンで時刻を返すメソッドを担当しているようです。なぜこうなった?で見つかったタイムゾーンを PHP に反映させるにはどうすればよいphp.iniですか?

アップデート

私は最終的にからタイムゾーン調整された時間を取得しようとしていdate('Y-m-d G:i:s')ます。私のタイムゾーンは php.ini で設定されているため、正しい日付/時刻を取得するにはどうすればよいdate()ですか?

4

1 に答える 1

0

あなたの質問で尊重の意味を理解していれば、それdate_default_timezone_get()が ini 設定を返さないことに疑問を抱いているでしょう。get 操作の前に次の行を呼び出すことで、これを変更できます。

date_default_timezone_set(ini_get('date.timezone'));

例 #2マニュアルからタイムゾーンの略語を取得するも参照してください。

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');

上記の例では、次のように出力されます。

America/Los_Angeles => America/Los_Angeles => PST
于 2013-08-23T14:38:07.537 に答える