だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

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

wordpress

ワードプレスの時刻機能date関数で、たまに時間帯がずれてしまう時があります。そんな時は、関数のオプションを利用して、時刻のオフセット調整をしてあげればOKです。

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

ページ上部に戻る