PHPの時刻がずれている!そんなときのタイムゾーンの指定の方法

スポンサーリンク

こんにちは、てっちーです。PHPで時間を取得したらずれている!って場合があります。そんな時に想定される原因とそれに対する対策方法を紹介します。

時間がずれる原因

タイムゾーンが間違っている

ご存知の通り世界の国々の時間はバラバラです。それぞれの国々でPHPを使うにはタイムゾーンの設定を適切に行うことが必要です。もしタイムゾーンが異なると時間単位でずれてしまいますので注意画筆王です。たとえば日本の場合は、東京に設定することで正しい時刻を取得できます。

タイムゾーンの設定方法は2つあり、環境に合わせて選んでください。

php.iniでタイムゾーンを設定する

php.iniでタイムゾーンの設定ができます。php.iniでの変更はそのphp.iniを読み込んでいる環境全体へ影響がありますので、ご注意ください。

php.iniを開いて“timezone”で検索して、下記の様な記述の場所を探してください。下記は私の環境のphp.iniでの記述です。ベルリンになってました。。。WindowsのXAMPPだとこれがデフォルトの様です。

[Date]
date.timezone=Europe/Berlin

これを下記のように変えます。これでタイムゾーンが東京になります。

[Date]
date.timezone=Asia/Tokyo

PHPファイル内で設定する

php.iniを変更できない場合などは、PHPファイル内で下記の記述を追加することでもタイムぞゾーンを変更できます。こちらはそのファイルだけに適用されるので、ファイル毎に追加する必要があります。一部だけ変更したい場合やphp.iniを変更できない場合などに適しています。

date_default_timezone_set('Asia/Tokyo');

東京以外のタイムゾーン

タイムゾーンを東京以外に設定したい場合は、それにあったタイムゾーンを正しく設定してあげる必要があります。こちらにタイムゾーンのリストがあるので、参考にしてみてください。

PCやサーバーの時刻がずれている

PHPの時刻はPCやサーバーの時間を使うので、それがずれていればPHPの方もずれてしまいます。システム側の時間を確認してみてください。修正するにはPCやサーバーの時間を正しい時間へ直す必要があります。

数秒~数十秒程度のずれの場合は、こちらを疑ってみてください。

まとめ

レンタルサーバーなどであれば問題ないと思いますが、ローカルの環境などでは時刻を扱わないと気付きにくい問題です。時間単位で時刻がずれていたらタイムゾーンを設定してみてください。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする