wpのphp日付取得で最新時刻のものだけうまく判定できない時は9時間ずらして対処

web制作

wordpress環境の中でphpコードdateを使うと、最新日時のものだけ判定しない時があります。

これは、wordpressに利用されている、UTC (世界標準時) が原因です。



date('Y-m-d', strtotime('today'))

このように記述した時、レンタルしているサーバーが海外にあると、そのまま利用しても大丈夫ですが、しかし、日本国内のサーバーで上記の記述をすると、9時間のずれが発生してしまう時があります。

こうなると、たとえば10/1の判定をしたい時、10/1の09:00以降にならないと、10/1を判定しないということが起きます。

なので、



date('Y-m-d', strtotime('+9hour'));

と記述してあげると、日本国内サーバーであっても、10/1になった瞬間、ちゃんと10/1の判定となります。

注意したいのは、+9hourにしたソースコードを、海外サーバーに移転した時にそのまま使うと、タイムラグが発生してしまうので、戻してあげる必要がある、ということです。

その他の詳しい方法などは、下記ページの方がまとめてくださっていますので、ぜひ参考に。

▼WordPressで現在時刻を利用すると9時間ずれてしまう問題
https://qiita.com/yousan/items/a385f794a9bb433aecbb

まとめ

wpのタイムスタンプを扱う時は、自分のサーバーの国籍もチェックしておくと、ヘンなエラーを起こさずにすみますので、ぜひチェックしてみてください!

最後に一言

サーバーが原因と気づくのに時間かかってしまったマン

この記事をSNSでシェアする?

wordpress

wpのphp日付取得で最新時刻のものだけうまく判定できない時は9時間ずらして対処


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

PROFILE

yoshi

KIYOTATSU(キヨタツ)を運営しているウェブ制作者のYoshiです。得意な分野はディレクションとコーディングです。デザインはシンプルなものだけ可能です。他、色々と随時習得中です。