WordPressでの現在日時取得はdate_i18n()を使う
WordPress下でdate()やtime()関数を使うとphp.iniのTimeZone設定の如何を問わずUTCで日時を返します。そのため、WordPress下でローカル日時を取得したい場合はWordPressが用意するdate_i18n(), current_time()を利用します。
WordPress下でdate()やtime()関数を使うとphp.iniのTimeZone設定の如何を問わずUTCで日時を返します。そのため、WordPress下でローカル日時を取得したい場合はWordPressが用意するdate_i18n(), current_time()を利用します。
WordPressのwpdbクラスに含まれるprepareメソッドのプレースホルダーとMySQLのDATE_FORMAT()などで利用される書式指定子は同じ%から始まる書式なので、使い方を間違えると競合してエラーになります。
基準となる日、今週なら今週の週初めの日付さえ取得されれば、「created >= 週初めの日付 AND created < 一週間後の日付」などの条件で取得することができますが、MySQLでは年4桁週番号2桁の値を返すYEARWEEK()関数を利用することでも取得することができます。
前回の記事でPHPで試した日時情報のタイムゾーン変更を、今度はPerlで同じように試します。Perlで日時情報の操作はTime::Pieceが使われるのが一般的ですが、タイムゾーンを扱う場合はDateTimeとDateTime::TimeZoneを利用します。
PHP5.2からDateTimeクラス/DateTimeZoneクラスが、PHP5.3からはDateIntervalクラスが登場し、PHPでの日時計算・操作はPHP4時代から比べて随分手軽になりました。今回はそのうちタイムゾーンの変換について簡単にまとめます。