PHPでstrtotimeでWarning (2): strtotime() ... が発生した時の対処方法 †cakephp1.3.15をCentOS6にインストールして、初めてブラウザで接続したとき、以下のメッセージが表示されました。 スポンサーリンク Warning (2): strtotime() [http://php.net/function.strtotime]: 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 [CORE/cake/libs/cache.php, line 597] Code | Context strtotime - [internal], line ?? CacheEngine::init() - CORE/cake/libs/cache.php, line 597 FileEngine::init() - CORE/cake/libs/cache/file.php, line 81 Cache::_buildEngine() - CORE/cake/libs/cache.php, line 166 Cache::config() - CORE/cake/libs/cache.php, line 141 Configure::__loadBootstrap() - CORE/cake/libs/configure.php, line 429 Configure::getInstance() - CORE/cake/libs/configure.php, line 52 include - CORE/cake/bootstrap.php, line 38 [main] - APP/webroot/index.php, line 79 Notice: Trying to get property of non-object in /var/www/html/cakephp-cakephp-5e063d7/cake/libs/cache/file.php on line 262 Fatal error: Call to a member function cd() on a non-object in /var/www/html/cakephp-cakephp-5e063d7/cake/libs/cache/file.php on line 262 使用した環境 †
strtotimeのWarning対処方法 †date_default_timezone_set関数でタイムゾーンを設定すればよいようですが、PHPスクリプトを触りたくないので、php.iniに以下の文字列を設定しました。 date.timezone = Asia/Tokyo タイムゾーン周りの参考資料は以下のリンクを参照してください。 php.iniの編集 †/etc/php.iniファイル内を確認すると、date.timezoneがコメントアウトされていました。 ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone ;date.timezone = <省略> 上記の ;date.timezone = を以下のように変更し保存しました。 [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = Asia/Tokyo <省略> httpd(Apache)の再起動 †php.iniの編集が完了したらhttpd(Apache)を再起動します。 [root@centos6 ~]# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ] 以上の操作により、strtotime関数がWARNINGにならず動作するようになります。 スポンサーリンク |