Комментарий ОП к своему собственному вопросу выше подразумевает, что часовой пояс по умолчанию не может быть установлен в 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"
Порядок приоритетов для получения конфигурации часового пояса даты по умолчанию подробно изложен здесь .