PHP の date() で日本の日時を取得しようとしたらサーバーによって 9 時間足りないときの対処法

目次

解決したいこと

PHP の date() を使うとき、日本の日時を取得しようとするとサーバーによって 9 時間足りないときがあります。

[code lang=’php’] $now = date(‘Y-m-d H:i:s e P’);
[/code] e:

とかやれば分かりますが、次の様な結果が返ってくるはずです。

[code lang=’text’] 2014-03-01 10:24:38 UTC +00:00
[/code]

「e」は「タイムゾーン識別子」なので「UTC」が、
「P」は「グリニッジ標準時 (GMT) との時差」なので、「+00:00」が返ってきます。

つまりはグリニッジ標準時で動いていると言う事です。

原因

PHP 5.1 以降では、「date_default_timezone_set()」関数によってデフォルトタイムゾーンを設定することができます。
これを使って日本に設定しましょう。

設定値は、アジアのタイムゾーンの一覧 から、「Asia/Tokyo」を選択しました。

確認用のコードは次のものです。

[code lang=’php’] date_default_timezone_set(‘Asia/Tokyo’);
$now = date(‘Y-m-d H :i :s e’);
[/code]

結果としては次の通りです。

[code lang=’text’] 2014-03-01 19:29:22 Asia/Tokyo +09:00
[/code]

「e」の「タイムゾーン識別子」は「Asia/Tokyo」が、
「P」の「グリニッジ標準時 (GMT) との時差」は、「+09:00」が返ってきています。

きちんと東京のタイムゾーンで動いていることが確認できますね。

まとめ

PHP もバージョンによって、またサーバーの設定によって動作に違いが出てきます。
こういった差異を無くす努力ができるエンジニアになりたいものです。

10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント

【最後まで読んでくれたあなたに】

あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?

私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。

それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。

しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。

そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。

・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!

という方は今すぐ無料でダウンロードしてください。

期間限定で、無料公開しています。

※登録後に表示される利用条件に沿ってご利用ください

コメントを残す