Вопрос

Я получил следующую ошибку / предупреждение при попытке установить 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

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

Это было полезно?

Решение

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

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

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


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

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

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

или

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

Другие советы

Комментарий OP к его собственному вопросу выше подразумевает, что часовой пояс по умолчанию не может быть установлен в php.ini, что неверно - фактически, во многих случаях его установка там предпочтительный.И поскольку этот ответ SO является одним из первых обращений в Google к "ошибке часового пояса php по умолчанию", я сохраню другим утраченное здравомыслие.

Очень распространенной причиной этой ошибки является не столько неправильное написание города зоны или страны (например"Нью-Йорк", "Лос-Анджелес") в используемом файле 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:

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

 <?php phpinfo(); ?> 

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

$ php -i | grep "timezone" 

Окна командной строки:

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


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

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

<код> date_default_timezone_set ( '...');

где ... является одним из допустимых часовых поясов PHP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top