年末です。
あるクライアントさんから「1月1日になったら休業日カレンダーを切り替えて欲しい」と要望がありました。
1月1日はコタツでくつろぐ日なので自動切り替えをPHPで設定しようとしました。
普通にやったら
例えば「cal2017.pdf」を「cal2018.pdf」に切り替える場合、通常ならこんな感じでクリアできます。
cal<?php echo date('Y'); ?>.pdf
でも、不安だったのでdate関数で今の時刻何時になってるかな?と確認したところ、「9時間」ずれていることが判明!
こりゃ大変だ。
年明けにカレンダー変わってないぞ!って言われちゃう。
WordPressの場合
WordPressは内部的な時刻がUTC (世界標準時) を利用しているそうです。
そのため、date_i18nという関数が用意されています。
cal<?php echo date_i18n('Y'); ?>.pdf
これで無事に年明け、0時0分にパッ!とカレンダーが切り替わる。ありがとうございます。