web-dev-qa-db-ja.com

PHP日付/時刻が間違っています

PHP date()time()は誤った時間を返します:

_date.timezone = "Europe/Riga"_の場合、date()から返された時刻は_03-12-2011 08:57:12_でしたが、システム時刻は_03-12-2011 01:57:12_でした(ヨーロッパ/リガのタイムゾーン-そのときの正しい時刻)。タイムゾーンを「ヨーロッパ/ロンドン」に変更すると、時間が_03-12-2011 06:57:12_(実際の時間_02-12-2011 23:57:12_)に変わりました。

date/_hwclock --show_から返された時刻は正しかった(_03-12-2011 01:57:12_システムのタイムゾーンをRigaに設定)

OS:Debian 6.0

SO/Googleで同様の問題に関する質問のほとんどを確認しましたが、すべてに間違ったタイムゾーンが指定されているようです。

私の知る限り、php-> osの間に問題があります。もちろん、正しくない時間オフセットは常に一定であるため、差を差し引くことができますが、これは適切な解決策ではありません。

どんなアイデアでも大歓迎です。

12
relic

この問題は、サーバーの1つで見たものと似ています。 php 5.3.2-1のバグ のように見えます。バグレポートでphpスクリプトを実行して、結果を投稿してください。

5
Arie Skliarouk

PHPマニュアルを読むと、 date.timezone の動作はphp.iniの設定に影響されるようです。すべての日付/時刻関数でデフォルトのタイムゾーンを設定する別の方法があります date_default_timezone_set です。次のように設定してみてください:

date_default_timezone_set('Europe/Riga');

date.timezoneコードの代わりに。

15
Marco Pace

システムのタイムゾーンが間違っている可能性があります。これにより、PHP date()関数で指定された時刻がシフトしますが、phpのdate.timezone(php.ini内)とサーバーのシステム時刻はどちらも正確です。

3
user2317245

タイムゾーンにも問題がありました。これは誰かにとって便利です。

私の場合、チリシュメール時間CLSTが間違ったtimzeoneオフセットを返しました。

timezonedbを更新するとうまくいきました。

移動: https://pecl.php.net/package/timezonedb

Widnowsの場合dllの最新バージョンをダウンロードし、「ext」ディレクトリにコピーします。 php.iniを編集して、次の行を追加します。

extension = php_timezonedb.dll

Linuxの場合使用できます:

peclインストールtimezonedb

php.iniに次のように入力します。

extension = php_timezonedb.so

1
Piotr

アゼルバイジャンのタイムゾーンに対するこのコメント

Php 7.2またはphp 7.1バージョンで 'Asia/Baku'に問題があります。

「ヨーロッパ/バクー」への問題変更を解決しました

1
Turan Zamanlı