wordpressで時刻が九時間ずれちゃう件とかの

wordpressで時刻が九時間ずれちゃう件とか。

外部からworpdress一式をrequireさせて動作してたらどうもうまく動かない。

sitemapのlastmodを作成させようとしたところ、なぜかISO 8601形式でタイムゾーンがうまくとれてない。

phpを5.2系列から5.3系列にあげたのが最近だったので、ここら辺には思い当たる節があった。

php5.2だとそのままのiniファイルで怒られなかったのだが、5.3にあげたとたん、大量のwarningが出るようになっていたのだ。

その内容はdate.timezoneがセットされてないですよ、って問題。そんでこれを手動でAsia/Tokyoに設定していた。なのになんでUTCで返してるんだよ、と。

時を同じくして、ちょうどそのころからwordpressの記事更新日時が9時間ずれていた。

あまり気にすることでもなかったので放っておいたのだが、今回の件に絡んだ原因であることが判明。

適当にwpのファイルを開くとさくっとみつかった。

if ( function_exists('date_default_timezone_set') ) date_default_timezone_set('UTC');

うーん、なんでutc決めうちなんですか。

どっかにタイムゾーンの指定するところがあって、それを後々、DBとかcacheから拾ってくる仕様なのかな。grep -R date_default_timezone下感じだとwp-includes/functions.phpにひっかかったぐらい。

面倒だけど今回は外部からの呼び出しでwpを利用してるので、wpを読み込んだあとにjstで上書きさせよう。

コメントを残す