PHPのデフォルトのタイムゾーンエラー
-
22-07-2019 - |
質問
Kohana / SilverStripeのインストール中に次のエラー/警告が表示されました。
それはどういう意味ですか、どうすればよいですか?
Warning:
date_default_timezone_get():
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/Calcutta' for '5.5/no DST' instead in C:\Server\apache\htdocs\kohana\system\core\Kohana.php on line 136
事前に感謝します!
解決
これはエラーではなく警告であるため、アプリの動作をブロックしません。
136行目のC:\ Server \ apache \ htdocs \ kohana \ system \ core \ Kohana.phpでdate_default_timezone_set()を使用して適切なタイムゾーンを明示的に設定します
から選択する必要があります編集
警告メッセージ自体に示されているように、実際にはサードパーティのソフトウェアファイルを編集するよりもクリーンな選択肢があります。つまりPHPを構成する必要があります。
-
php.ini
を編集し、date.timezone = America / New_York
の値を調整します
または
- Webサーバー設定で
php_value
ディレクティブを使用して、 vhost設定または.htaccess
:php_value dateに設定します。タイムゾーンAmerica / New_York
他のヒント
上記の彼自身の質問に対するOPのコメントは、デフォルトのタイムゾーンをphp.iniで設定できないことを意味しますが、これは真実ではありません—実際、多くの場合、それを設定すると preferred があります。そして、このSOの回答は、Googleで「phpデフォルトタイムゾーンエラー」の最初のヒットの1つであるため、他の人が失った正気を保存します。
このエラーの非常に一般的な原因は、使用されているphp.iniファイル内のゾーンの都市または国(例:「ニューヨーク」、「ロサンゼルス」)のつづりを間違えないことですが、識別子にはアンダースコアではなくスペースが使用されるため、「ミススペル」完全な定数。
これは、実行時にすべてのページに設定することなく、必要な処理を行います(PHP 5.4および5.3、Windows、Linux、OSXで検証済み):
php.ini 内:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York
; ^^^^^^^^^^^^^^^^ * Must_Use_Underscores *
また、スペルのチェックと再チェックを行って確かである場合は、使用されている実際 php.iniファイルを編集していることを確認してください:
Webコンテキスト(テストファイル test.php を作成し、そこで date.timezone
を確認します):
<?php phpinfo(); ?>
コマンドラインLinux / OSX:
$ php -i | grep "timezone"
コマンドラインWindows:
C:\> php -i | find "timezone"
デフォルトの日付タイムゾーン設定を取得する優先順位は、こちら。
php.ini
を変更する機能がない場合、これを _ss_environment.php
または mysite / _config.php
ファイル:
date_default_timezone_set( '...');
where ...
は有効なPHPタイムゾーンの1つです。