ジェイクールの更新テクニック

WordPress : 時間のズレ, タイマー等設置時の注意

ワードプレスで時間を取り扱う際、実際の日本時間より9時間前になってしまうことがあります。
「設定」→「一般」→「タイムゾーン」をみると、東京を選択していても UTC(協定世界時)が異なることが分かります。

wp-time-diff-01

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バージョンアップ時に上書きされるのであまりオススメできません。

時間のズレ。うっかり忘れてしまいそうです。お気をつけて。