PHPのdate関数を実行した場合にタイムゾーンの警告が表示される場合の対策方法

管理しているサイトが最近重くて仕方がないので、サーバーを移転させて表示確認をしていたところ、PHPのdate関数の箇所で以下のような警告エラーが表示されていました。

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /****/****/****/index.php on line 79

サイトのフッターに”©2014 designbits”のように、現在年でのコピーライト表記をしたいだけ、date関数しか使っていないはずなんですが、何しろ何年も変更していないファイルなので「覚えてないけど、何かめんどくさい事してたっけな?」と思って確認したところ、やはり

&copy;<?php echo date('Y'); ?> designbits

という簡単なコードを書いておいただけでした。

旧サーバーでは出ていなかったので、うっかり見落とすところでした。

 

対策方法 

対策方法はエラーメッセージにそのまま書いてありますが、以下のどちらで対処します。

 

date.timezone を設定する

php.iniに以下の行を追加します。

date.timezone = Asia/Tokyo

 

date_default_timezone_set() を設定する

レンタルサーバーなどでphp.iniを書き換えられない場合はPHPコードの先頭付近に以下の1行を記載しておきましょう。

date_default_timezone_set('Asia/Tokyo');

もちろんこれは日本標準時(Asia/Tokyo)の場合ですので、国外の場合は適宜変更します。