あっどうも確認不足で慌てる者です。
今回は、ワードプレス限定で起きたgetdate()の挙動がおかしいというお話。
(かぴぐらし・新年早々トラブルです。getdate()いう関数が動かないと憤慨しています。)
目次
「新年あけましておめでとうございます!」とかいう表示を自動でやりたくてgetdate()を使いました。記述は簡単です。
//現在時刻を取得して代入
$today = getdate();
//明けたらメッセージ切替
if($today[year] == "2013"){
echo '2012年だよ';
}else{
echo '新年あけましておめでとうございます!';
}
シンプルすぎて間違いなどありえない状態でした。
が・・・なぜか挙動がおかしい。
(
[seconds] => 42
[minutes] => 32
[hours] => 17
[mday] => 1
[wday] => 2
[mon] => 1
[year] => 2013
[yday] => 0
[weekday] => Tuesday
[month] => January
[0] => 1357061562
)
2013年1月1日0時0分に動作したgetdate()でしたが
9時間もズレているのです。
・・・9時間遅い。ロンドンかぁい!
結論は簡単でした。
ワードプレスのファイルに直接記述すると強制的に標準時(UTC)に設定されます。
予約投稿などの時刻は、ワードプレス内「設定」のタイムゾーンで設定されていますが直接記述になると話は別のようです。
困りますよね?
考えるの面倒臭い。強制的に設定してくるファイルの記述を書き換えます!
(自己責任でね☆)
![]()
ワードプレス内「wp-settings.php」の中にある「date_default_timezone_set(‘UTC’);」をコメントアウト!
これで日本時刻でgetdateを取得できるようになりました(`・ω・´)ゞ