ошибка часового пояса по умолчанию в php - PullRequest
1 голос
/ 18 сентября 2009

При попытке установить 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

Заранее спасибо!

Ответы [ 3 ]

6 голосов
/ 18 сентября 2009

Это не ошибка, а предупреждение, поэтому оно не блокирует работу вашего приложения.

Явно установите правильный часовой пояс, используя date_default_timezone_set () в C: \ Server \ apache \ htdocs \ kohana \ system \ core \ Kohana.php в строке 136

Вы должны выбрать из допустимых часовых поясов


Редактировать

Поскольку в самом предупреждающем сообщении говорится, что у вас действительно есть более правильный выбор, чем редактирование стороннего программного обеспечения. То есть настройка PHP в порядке.

  • отредактируйте php.ini и настройте значение date.timezone = America/New_York

или

  • используйте директиву php_value в конфигурации вашего веб-сервера, чтобы установить ее в конфигурации vhost или .htaccess: php_value date.timezone America/New_York
4 голосов
/ 25 июня 2012

Комментарий ОП к своему собственному вопросу выше подразумевает, что часовой пояс по умолчанию не может быть установлен в php.ini, что неверно & mdash; на самом деле, во многих случаях его установка предпочтительна . И поскольку этот SO-ответ является одним из первых обращений в Google к «ошибке часового пояса php по умолчанию», я спасу других от потери здравомыслия.

Очень распространенной причиной этой ошибки является не столько неправильное написание города или страны зоны (например, «Нью-Йорк», «Лос-Анджелес») в используемом файле php.ini, сколько вместо этого включение скорее встроенных пробелов. чем подчеркивает в идентификаторе, и, таким образом, "неправильно пишет" полную константу.

Это также будет делать то, что вы хотите, без необходимости устанавливать его на каждой странице во время выполнения (проверено на PHP 5.4 и 5.3, в Windows, Linux и OSX):

In 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:

Веб-контекст (создайте тестовый файл test.php , а затем подтвердите date.timezone там):

 <?php phpinfo(); ?> 

Командная строка Linux / OSX:

$ php -i | grep "timezone" 

Командная строка Windows:

C:\> php -i | find "timezone" 


Порядок приоритетов для получения конфигурации часового пояса даты по умолчанию подробно изложен здесь .

1 голос
/ 08 марта 2016

Если у вас нет возможности изменить php.ini, добавьте это в свои _ss_environment.php или mysite/_config.php файлы:

date_default_timezone_set('...');

, где ... - один из действительных часовых поясов PHP.

...