Конфигурация PHP. Небезопасно полагаться на настройки системного часового пояса
Здесь странный.
Я просто обновляюсь до php 5.3.0, и с момента обновления я получаю следующее предупреждение:
Предупреждение: getdate() [function.getdate]: Небезопасно полагаться на систему настройки часового пояса. Вам необходимо использовать настройку date.timezone или date_default_timezone_set() функция. Если вы использовали любой из эти методы, и вы все еще получив это предупреждение, вы, скорее всего, с ошибкой указал идентификатор часового пояса. Мы выбрал 'Америку/Чикаго' для '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
По-прежнему появляется предупреждение.
Любые предложения?
Спасибо, что нашли время.
Ответы
Ответ 1
Чалвак, который прокомментировал исходный вопрос, ударил ногой по голове для меня. Я редактировал (я использую Debian):
/etc/php5/apache2/php.ini
... у которого был правильный часовой пояс для меня и был единственным .ini файлом, в который загружалась дата .timezone внутри него, но я получал вышеупомянутую ошибку, когда я запускал script через Bash. Я понятия не имел, что мне нужно было редактировать:
/etc/php5/cli/php.ini
. (Ну, для меня это было "также", для вас это может быть иначе, но я собираюсь сохранить свои версии php.ini для Apache и CLI сейчас).
Ответ 2
Вы пытались установить часовой пояс по функции func:
http://pl.php.net/manual/en/function.date-default-timezone-set.php
Ответ 3
Мне пришлось настраивать Apache и PHP на двух ноутбуках в последнее время. После много плача и скрежещения зубов, я заметил в выходе phpinfo, что (по какой-то причине: не обращая внимания во время установки PHP, плохой установщик) Apache ожидал, что php.ini будет где-то там, где он не был.
Два варианта:
- поставьте его там, где Apache считает, что он должен быть или
- укажите Apache в истинном месте вашего php.ini
... и перезапустите Apache. В этой точке следует определить настройки часового пояса.
Ответ 4
Откройте файл .htaccess, добавьте эту строку в файл, сохраните и повторите попытку:
php_value date.timezone "America/Sao_Paulo"
Это работает для меня.
Ответ 5
попробуйте это, он работает для меня.
date_default_timezone_set('America/New_York');
В самом файле, который жаловался.
Ответ 6
Проверьте наличие синтаксических ошибок в файле php.ini, особенно перед параметрами Date, которые предотвращают правильную обработку файла.
Ответ 7
Измените index.php следующим образом:
require_once($yii);
$app = Yii::createWebApplication($config);
Yii::app()->setTimeZone('UTC');
$app->run();
Ответ 8
Очевидно, что я немного вне сезона по этому вопросу, но на благо следующего страдальца: у меня была эта проблема, и в моем случае (в отличие от OP, который пробовал то же самое без успеха) исправление должно было пересмотреть php.ini, изменение
date.timezone = America/New York
to
date.timezone = America/New_York
Это добавление подчеркивания.
Ответ 9
Я изменил /etc/php.ini
[Дата]
; Определяет часовой пояс по умолчанию, используемый функциями даты
; http://php.net/date.timezone
date.timezone = ('Asia/kolkata')
и теперь работает нормально.
Vipin Pal
Ответ 10
Возможно, вы забыли удалить точку с запятой, чтобы раскомментировать эту строку. Для строки date.timezone = "US/Central"
убедитесь, что перед этой точкой нет точки с запятой.
Ответ 11
Я обнаружил, странно, что я мог исправить ошибки, разместив объявление часового пояса в TOP моего файла php.ini.
Это уже было в моем php.ini. На самом деле, дважды. И я вытаскивал свои волосы, потому что все говорили, что должно быть еще что-то загружено... Не было.
Надеюсь, что это может спасти кого-то еще время/выпадение волос.
Ответ 12
Также вы можете попробовать это
date.timezone = <?php date('Y'); ?>