当我请求在服务器上将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>

当前回答

我已经在.htaccess文件中创建了这个:

php_value date.timezone Asia/Jakarta

但这并不奏效。 然后我尝试将php版本从5升级到7。这就解决了问题。

其他回答

<? date_default_timezone_set('Europe/Istanbul'); ?>

对于php(或您的位置)。

我有这个错误运行php-fpm在chroot监狱。我试着在chroot目录中创建etc/php.ini和/usr/share/zoneinfo,但它就是不工作。我甚至试着整理php-fpm守护进程,看看它们丢失了什么文件——什么都没有跳出来。

所以如果谷歌把你带到这里,因为你在使用配置为chroot的php-fpm时得到了这个错误,你可能可以通过在ENV部分的/etc/php-fpm.d/www.conf中添加这一行来修复它:

env[TZ] = America/New_York

通常需要重新启动php-fpm才能生效。希望这能帮助到一些人。

当你纠正不兼容时,一个快速的解决方案是禁用index.php文件中的错误报告:

将下面的行插入到你的index.php下面define(' _JEXEC ', 1);

error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR |
E_COMPILE_WARNING );

除了设定日期。Timezone =正如在几个答案中提到的, 我在php.ini文件中发现了一个错误,它阻止它到达date.timezone。 我找到它的方法是在终端的命令行中运行php。 这导致在第114行报告一个错误。在我的例子中,我取消了显示两个值之间有“|”的错误的设置。它不喜欢这样。 我删除了其中一个值和|,之后一切都很好

如果你不能访问php.ini文件,在你的域或子目录的根目录下创建或编辑一个。htaccess文件,并添加这个(由cpanel生成):

<IfModule mime_module>
AddType application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>

<IfModule php5_module>
php_value date.timezone "America/New_York"
</IfModule>

<IfModule lsapi_module>
php_value date.timezone "America/New_York"
</IfModule>