当サイトには広告が含まれております

phpのdateを表示したらマイナス9時間だったときの対応

この記事は最終更新日から8年経過しています。内容が古い可能性があります。

Image

直近1ヶ月に投稿した記事の人気順位を表示するテンプレートを作りました という記事を書いたときに初めて気づいたのですが、phpの date で取ってくる日時がなんかおかしい。。時刻まで表示してみたら分かったのですが、

Image

↑このときの日時は 2014-07-11 09:10

と、9時間少なかったのです。ということは グリニッジ標準時 ってことなんですね。

テンプレートなどでdateを使うことはこれからもあると思うので日本時間を認識するようにしてみました。

記事をざっと見る

確認:ダッシュボード

ググるとダッシュボードにタイムゾーンの設定があるという情報を得ました。

Image

設定>一般 で見ると、

Image

このようにタイムゾーンはちゃんと設定されています。たしか投稿日付などは間違っていないのでどこか部分的にだけ、タイムゾーンがグリニッジ標準時になっちゃって、9時間ずれているみたいです。

タイムゾーンの設定を子テーマのfunctions.phpに入れてみた

今回時間がずれていたのはテンプレートでの判定のときだったので、子テーマのfunctions.phpの最後の行にタイムゾーンの設定を入れてみました。

date_default_timezone_set('Asia/Tokyo');

うーん、本当はダッシュボードで指定したタイムゾーンをいれたいのですが、調べる時間をはしょって(^_^;、ハードコーディングしてしまいました。

同じページを表示してみると、

Image

↑このときの日時 20140-07-11 09:19

と正しく表示されました。一度この設定をしておけば、php で dateを参照したときにずれなくて済みますね。

もっと別の方法もありました

【date関数を使うとずれるので】WordPressで日時を扱うときは、この関数が便利でした

date ではなく date_i18n を使うとずれなく取得できるようです。

なるほどWordPressはちゃんと関数を用意してくれているのですね!

私の場合は別の環境で作ったロジックをWordPressで使ったりするのでやはり共通で使えるdateの時間をタイムゾーンに合わせたいですが、WordPressでしかコーディングしない場合は date_i18n を使うことでも解決できそうです。

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントを残す

記事をざっと見る