ワードプレスで時間を取り扱う際、実際の日本時間より9時間前になってしまうことがあります。
「設定」→「一般」→「タイムゾーン」をみると、東京を選択していても UTC(協定世界時)が異なることが分かります。
php の date(‘Y-m-d H:i:s’) 等で時間を取得すると、UTC が反映されてしまいます。「現地時間」は合ってるんですけどね。
対策としては、
1. ワードプレス関数を使用する。
$now = date_i18n(‘Y-m-d H:i:s’);
WordPress 3.9~では、current_time(‘Y-m-d H:i:s’);
date_i18n() は内部で current_time() を呼んでいます。
2. php の new DateTime() で時間を読み込む。
$now = new DateTime(”, new DateTimeZone(‘Asia/Tokyo’));
$now->format(‘Y-m-d H:i:s’);
として取得、成型します。
他の方法もありますが、WPバージョンアップ時に上書きされるのであまりオススメできません。
時間のズレ。うっかり忘れてしまいそうです。お気をつけて。