Я получил эту ошибку, когда запросил обновить версию PHP с 5.2.17 до PHP 5.3.21 на сервере.
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: date(): 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 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 86</p>
</div>
Warning: date(): 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 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 86
Warning: date(): 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 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 99
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: date(): 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 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 99</p>
</div>
php.ini
используемый apache, просто выполните следующую командуphp -i | grep php.ini
.Если вы не можете изменить конфигурацию php.ini, вы также можете использовать следующий фрагмент кода в начале своего кода:
Список часовых поясов можно найти по адресу http://www.php.net/manual/en/timezones.php .
источник
Добавьте следующее в ваш
index.php
файл. Впервые я столкнулся с этим, когда переместил свое приложение со своего сервера XAMPP на Apache 2.2 и PHP 5.4 ...Я бы посоветовал вам сделать это в вашем
index.php
файле вместоphp.ini
файла.источник
вместо
работал у меня (показывает текущий год и больше не показывает сообщение об ошибке). (Спасибо Крису выше)
источник
Если это не ваши варианты
php.ini
.date_default_timezone
звонка.Вместо того, чтобы
date
вы могли использоватьgmdate
.Я использовал,
gmdate( "Y" )
когда мне понадобился год для снипплета авторских прав.источник
Если вы используете CodeIgniter и не можете изменить php.ini, я добавил следующее в начало index.php:
источник
Я всегда держу эту строку в корне
index.php
codeigniter. Так что мой код работает на любом сервереСписок поддерживаемых часовых поясов здесь
источник
@Justis указал мне верное направление, но его код не работал для меня. Это сделал:
Документация: http://www.php.net/manual/en/function.date-default-timezone-get.php
Это решение не только для тех, кто не имеет полного доступа к системе. Это необходимо для любого сценария, когда вы предоставляете его кому-либо еще, кроме вас. Вы никогда не знаете, на каком сервере будет запускаться скрипт, когда вы распространяете его среди других.
источник
Эта проблема беспокоила меня в течение НЕКОТОРОГО времени, так как я пытаюсь внедрить скрипт «createbucket.php» в композитор, и мне постоянно говорят, что мой часовой пояс неверен.
В конце концов, единственное, что решило проблему, это:
$ sudo nano /etc/php.ini
Поиск часового пояса
Убедитесь, что вы удалите
;
Потом наконец
И тебе будет хорошо идти :)
источник
Я должен был поместить это в двойные кавычки.
источник
/etc/php.ini: date.timezone = America/Los_Angeles
Вы можете установить часовой пояс в вашем
.htaccess
файлеисточник
В дополнение к установке date.timezone =, как упоминалось в нескольких ответах, я обнаружил ошибку в файле php.ini, которая не позволяла ему добраться до date.timezone. Я нашел это, запустив php из командной строки в терминале. это вызвало сообщение об ошибке в строке 114. В моем случае я раскомментировал настройку для отображения ошибок, которые имели '|' между 2 значениями. Это не понравилось. Я удалил одно из значений и | и все было хорошо после этого
источник
Простой метод для двух часовых поясов.
источник
Для php (или вашего местоположения).
источник
Быстрое решение, пока вы исправляете несовместимости, состоит в том, чтобы отключить отчеты об ошибках в вашем
index.php
файле:Вставьте строку ниже в ваш index.php ниже
define( ‘_JEXEC’, 1 );
источник
Я размещаю свои ведра EC2 и S3 в регионе us-west-2 (Oregon). Когда я звонил,
$s3client->listBuckets()
чтобы перечислить существующие сегменты в моем php, я получал исключение -"Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings...".
я сделал ниже изменения, чтобы это работало. Разделение этих деталей в случае, если кто-то сталкивается с подобной проблемой, и любой из вышеупомянутых ответов не помог.ntpstat
команду. Если вы получили ошибку, эта ссылка поможет вам узнать, что происходит не так.date.timezone
ему не было присвоено никакого значения, а также он был прокомментирован по умолчанию. Я прокомментировал, удалив ';' перед этой строкой и установите его значение"UTC"
и сохраните файл.sudo service httpd restart
иsudo service ntpd restart
команда.После этого я могу без проблем перечислять корзины. Надеюсь это поможет.
источник
Если вы используете Plesk, попробуйте сначала «Открыть настройки PHP» внизу страницы, измените date.timezone с DEFAULT на UTC.
источник
У меня была эта ошибка при запуске php-fpm в chroot-тюрьме. Я попытался создать etc / php.ini и / usr / share / zoneinfo в каталоге chroot, но это просто не сработало. Я даже пытался связать демонов php-fpm, чтобы увидеть, какой файл они пропустили - ничего не выпрыгнуло.
Так что в случае, если Google привел вас сюда, потому что вы получаете эту ошибку при использовании php-fpm, настроенного для chroot, вы, вероятно, можете исправить это, добавив эту строку
/etc/php-fpm.d/www.conf
в раздел ENV:Перезагрузка php-fpm обычно требуется, чтобы он вступил в силу. Надеюсь, это поможет кому-то там.
источник
В моем конкретном случае у меня есть PHP, настроенный для использования PHP-FPM (FastCGI Process Manager). При выполнении
phpinfo()
из CLI я видел правильный часовой пояс, который я установил в php.ini, однако он все еще был некорректным в браузере и приводил к сбою моего кода. Мне просто нужно было перезапуститьphp-fpm
службу на сервере.Вам также может понадобиться перезапустить
httpd
службу, если вы отредактировалиphp.ini
источник
Этот ответ выше от CtrlX является правильным ответом, но он может работать не полностью. Я добавил эту строку в мой файл php.ini :
но это не устранило ошибку PHP для всех моих файлов, потому что некоторые из моих скриптов PHP находятся в подпапках. Поэтому мне пришлось отредактировать файл .htaccess для настройки рекурсивного использования php.ini (в подпапках):
где account_name - это имя вашей учетной записи cpanel, а public_html - папка, в которой находится ваш файл php.ini.
источник
Для пользователя Docker: создайте локальный файл timezone.ini в своем проекте, настройте конфигурацию в docker-compose.yml,
timezone.ini
источник
Если у вас нет доступа к файлу
php.ini
, создайте или отредактируйте.htaccess
файл в корне своего домена или подпрограммы и добавьте его (сгенерированный cpanel):источник
Есть два варианта решения этого
Сначала перейдите в файл php.ini и установите часовой пояс по умолчанию.
После того, как вы установили часовой пояс в php.ini, перезапустите сервер.
Во-вторых, измените часовой пояс назначить часовой пояс в зависимости от ваших потребностей
источник
На вашей странице подключения введите такой код в
date_default_timezone_set("Africa/Johannesburg");
зависимости от вашего текущего местоположения.источник