Конфигурация PHP. Небезопасно полагаться на настройки часового пояса системы

Здесь странный. Я просто обновляюсь до php 5.3.0, и с момента обновления я получаю следующее предупреждение:

Предупреждение: getdate () [function.getdate]: Нельзя полагаться на настройки часового пояса системы. Вы должны использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали 'America / Chicago' для 'CST / -6.0 / no DST'

После просмотра на разных форумах все говорят, что для решения проблемы все, что вам нужно сделать, это отредактировать зону дат в php.ini и перезапустить Apache.

Это не сработало для меня.

Я пытался

date.timezone="America/New_York" date.timezone=America/New_York date.timezone="US/Central" 

Перезапустил apache после того, как внес изменения.

Поскольку у меня все еще есть более старая версия php install, я даже убедился, что я редактирую php.ini, что текущая версия php использует в то время для загрузки

/usr/local/php5/lib/php.ini

Все еще получаю предупреждение.

Какие-либо предложения?

Спасибо, что нашли время.

Чалвак, который прокомментировал первоначальный вопрос, ударил ногой по голове для меня. Я редактировал (я использую Debian):

 /etc/php5/apache2/php.ini 

… у которого был правильный часовой пояс для меня и был единственным .ini-файлом, который загружается с помощью date.timezone внутри него, но я получал вышеупомянутую ошибку, когда я запускал скрипт через Bash. Я понятия не имел, что мне нужно было редактировать:

 /etc/php5/cli/php.ini 

также. (Ну, для меня это было «также», для вас это может быть иначе, но я собираюсь сохранить свои версии php.ini для Apache и CLI сейчас).

Вы пытались установить часовой пояс по функциям: http://pl.php.net/manual/en/function.date-default-timezone-set.php

В последнее время мне пришлось настраивать Apache и PHP на двух ноутбуках. После много плача и скрежеща зубов, я заметил в выходе phpinfo, что (по какой-то причине: не обращая внимания во время установки PHP, плохая установка) Apache ожидал, что php.ini будет где-то там, где он не был.

Два варианта:

  1. поместите его туда, где Apache считает, что это должно быть или
  2. Point Apache в истинном месте вашего php.ini

… и перезапустите Apache. В этой точке следует распознать настройки часового пояса.

Откройте файл .htaccess, добавьте эту строку в файл, сохраните и повторите попытку:

 php_value date.timezone "America/Sao_Paulo" 

Это работает для меня.

попробуйте, это работает для меня.

 date_default_timezone_set('America/New_York'); 

В самом деле, который жаловался.

Проверьте наличие синтаксических ошибок в файле php.ini, особенно перед параметрами Date, которые не позволяют корректно анализировать файл.

Измените index.php следующим образом:

 require_once($yii); $app = Yii::createWebApplication($config); Yii::app()->setTimeZone('UTC'); $app->run(); 

Я изменил /etc/php.ini

[Дата] ; Определяет часовой пояс по умолчанию, используемый функциями даты; http://php.net/date.timezone date.timezone = ('Asia / kolkata')

и теперь отлично работает.

Випин Пал

Очевидно, что я немного вне сезона по этому вопросу, но на благо следующего страдальца: у меня была эта проблема, и в моем случае (в отличие от OP, который пробовал то же самое без успеха) исправить было пересмотр php.ini , изменение

 date.timezone = America/New York 

в

 date.timezone = America/New_York 

Это добавление подчеркивания.

Возможно, вы забыли удалить точку с запятой, чтобы раскомментировать эту строку. Для линии date.timezone = "US/Central" убедитесь, что перед этой точкой нет точки с запятой.

Я обнаружил, как бы странно, что я мог исправить ошибки, разместив объявление часового пояса в TOP моего файла php.ini.

Это было уже в моем php.ini. На самом деле, дважды. И я вытаскивал свои волосы, потому что все говорили, что должно быть еще что-то загружено … Не было.

Надеюсь, это может спасти кого-то еще время / выпадение волос.

также вы можете попробовать это

 date.timezone = <?php date('Y'); ?>