以前、PHPで公開日を指定する方法という記事を書きましたが、WordPressのテーマファイル内で記述すると時間がずれてしまいました。
その記事の中で、date_default_timezone_set(“Asia/Tokyo”) を指定する事で解決する旨も伝えましたが、WordPressには、date_i18nという便利な関数が用意されていましたので、今日はその紹介です。
WordPress関数 date_i18n を使って公開日を指定する
以下、参考ソースコードでは、date_i18n関数を使いWordPress一般設定のタイムゾーンで設定した現地時間を取得、DateTimeで指定した日時のオブジェクトを生成して日付の比較をしています。
$now = date_i18n('Y-m-d H:i:s');
$target_day = new DateTime('2022-01-05 00:00:00');
$target_day = $target_day->format('Y-m-d H:i:s');
if ( $now < $target_day ) : // 2021年1月5日0時0分0秒まで公開
//処理
endif;
WordPress一般設定のタイムゾーンで設定した現地時間は以下の箇所となります。
WordPressテンプレート内で私も最初は $now = new DateTime(); のように日付を取得していたのですが、それではUTC(協定世界時)の日時を取得してしまいましたので、意図した日付での比較ができていませんでした。
WordPressテンプレート内で日付を呼び出す時は、DateTime関数とdate_i18n関数の性質を見極めて使い分るのが良いと思いました。
date_i18n関数について詳しくはWordPress関数リファレンスをご確認ください。
コメント