あっどうも確認不足で慌てる者です。
今回は、ワードプレス限定で起きた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を取得できるようになりました(`・ω・´)ゞ