WordPressの現在日時取得で時間がずれる時の解決法

WordPressでMW WP Formを使用してお問い合わせフォームを構築していた際、自動返信メール内で送信日時を設定する必要がありました。
現在日時の取得にdate
を使用したのですが、そうすると時間がずれてしまう現象が起きました。
現在時刻からちょうど-9時間ずれており、どうやらUTCの時刻が返ってきているようでした。
原因
調べてみるとWordPressのコアファイルであるwp-settings.php内でdate_default_timezone_set
にUTCがセットされており、これによって時間がずれてしまうようです。
wp-settings.phpの該当行に下記のような記述が確認できました。
// WordPress calculates offsets from UTC.
date_default_timezone_set( 'UTC' );
該当箇所を修正するのも一つの手ではありますが、アップデートする度に更新されてしまう場所なので、現実的ではありません。かといってdate
を使用する度にdate_default_timezone_set( 'Asia/Tokyo' )
とするのも冗長で憚られます。
解決法
WordPressではdate_i18n
というローカル日時を扱う関数が用意されており、こちらを使用します。
現在日時を取得したい箇所で下記のように記述します。
echo date_i18n( "Y-m-d H:i:s" );
これでローカルの現在日時が取得できます。
私たちGlatchはコーポレートサイト制作を得意とするWeb制作事務所です。
お気軽にご相談・お問い合わせください。