- 更新日: 2014年5月27日
- PHP & CakePHP
It is not safe to rely on the system’s timezone settings. PHPのエラー
スポンサーリンク
Mac に入れてある PHP で表題のエラー。システム(OS)のタイムゾーン設定に頼るのは良くないよ、とのことらしい。最近 PHP あまり書いてないし、php.ini とか何も設定せずに PHP 使ってたのでした。
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
PHP のインタラクティブシェルは、Ruby の irb, pry 同様に便利です。昨日、日付操作で以下の様なことをやっていた。
1 2 3 4 5 6 7 8 9 10 11 |
$ php -a Interactive shell php > $date = new DateTime('+7 days'); PHP Warning: Uncaught exception 'Exception' with message 'DateTime::__construct(): 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 shell code:1 Stack trace: #0 php shell code(1): DateTime->__construct('+7 days') #1 {main} thrown in php shell code on line 1 |
1 2 3 4 5 6 7 8 9 10 11 12 |
php > echo date('Y-m-d H:i:s', strtotime("+ 7 days")); PHP Warning: 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 in php shell code on line 1 PHP Stack trace: PHP 1. {main}() php shell code:0 PHP 2. strtotime() php shell code:1 PHP 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in php shell code on line 1 PHP Stack trace: PHP 1. {main}() php shell code:0 PHP 2. date() php shell code:1 2014-06-02 10:36:50 |
いずれも、It is not safe to rely on the system’s timezone settings の警告が出ています。
php.ini に timezone を設定
php.ini にタイムゾーンを設定すれば良いそうなので、まずは phpinfo() で php.ini の場所を探す。
1 2 3 4 5 6 7 8 |
php > phpinfo(); phpinfo() PHP Version => 5.3.9 ... Configuration File (php.ini) Path => /Users/username/.phpenv/versions/5.3.9/etc ... |
timezone に “Asia/Tokyo” を追記。
1 2 3 4 |
$ vi /Users/username/.phpenv/versions/5.3.9/etc/php.ini date.timezone = "Asia/Tokyo" |
インタラクティブシェルを再起動。
1 2 3 4 5 6 |
php > quit $ php -a php > echo date('Y-m-d H:i:s', strtotime("+ 7 days")); 2014-06-02 10:40:10 |
これでOKです。
スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
>> 次の記事 : phpMyAdminのSQLファイル・インポートでエラー
- PHP & CakePHP の関連記事
- PHP+MySQLでNo such file or directoryエラー
- bin/cakeコマンドでintlエラーが出る場合の対処(CakePHP)
- CakePHPアプリケーションをCapistranoでデプロイ
- Integrity constraint violation:Column ‘created’ in order clause is ambiguousエラー/CakePHP
- CakePHPでDB関連テーブルのレコード・データを取得
- CakePHPでカラム属性に別名/エイリアスを付ける仮想フィールド
- CakePHPで日付選択フォームのカスタマイズ
- CakePHP3で現在のコントローラー名・アクション名を取得
- PHPインストールでconfigure: error: freetype.h not foundエラー
- CakePHPでログイン後に元のページにリダイレクトさせる
Leave Your Message!