PHP5.3で現在時刻を取得しようと、date関数を使った以下のようなコードを書いたら警告がでました。
<?PHP $now = date("YmdHis"); print $now; ?>
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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in ファイル名
原因
タイムゾーンを指定していないのが原因でした。PHP 5.1.0からタイムゾーンを正しく設定せずに日付/時刻関数を呼び出すと警告がでます。
注意: PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを 正しく設定せずに日付/時刻関数をコールすると E_NOTICE が発生し、またシステムの設定や TZ 環境変数を 使用すると E_WARNING が発生するようになりました。
PHP: date_default_timezone_set - Manual
対処方法
上記の警告がでないようにするには、以下のエントリにあるように、date_default_timezone_set関数でタイムゾーンを指定してからdate関数を呼び出すか、php.iniであらかじめタイムゾーンを指定する必要があります。
つまり、date_default_timezone_set関数では以下のように記述、
date_default_timezone_set('Asia/Tokyo');php.iniでは、以下のように設定、
date.timezone = Asia/Tokyo
date関数で”Asia/Tokyo・・”なんかのエラーが出る件:PHP5.1.0以降