wpのphp日付取得で最新時刻のものだけうまく判定できない時は9時間ずらして対処
ワードプレスの時刻機能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のタイムスタンプを扱う時は、自分のサーバーの国籍もチェックしておくと、ヘンなエラーを起こさずにすみますので、ぜひチェックしてみてください!