我以前从未见过 phpinfo() 给出错误。这是怎么回事?我应该在 php.ini 中查找什么?
Warning: phpinfo() [function.phpinfo]: 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 /Users/{me}/Sites/localmirror/htdocs/tests/phpinfo.php on line 3
违规文件:
<?php
phpinfo();
?>
编辑:啊,我有点明白了,这个警告意味着我需要在 php.ini 中设置“date.timezone”。我以为他们在谈论“你”这个 php 程序员,但他们谈论的是“你”这个系统管理员。
答案1
您是否仍遇到类似的相同错误?
<?php
if(date_default_timezone_set('Europe/Stockholm') == 0) {
print "<!-- Error uknown timezone using UTC as default -->\n";
date_default_timezone_set('UTC');
}
phpinfo();
?>
答案2
答案是在我的 php.ini 文件中注释掉该行date.timezone = ...
并添加适当的时区(在我的情况下为“US/Eastern”)。我想我忽略了显而易见的事情。
答案3
您可能认为这很麻烦,但是从我的角度来看,这应该是必需的,因为在将日期插入 MySQL 数据库时,我非常依赖 PHP 应用程序中的管理时区,并且能够允许从用户的角度更改时区,因为服务器可能位于纽约,而我的客户希望所有日期都按照洛杉矶时间保存。
这只是我的看法,如果您不想遇到这种问题,您可以随时切换到 5.2.xx,或者开始在您的 php.ini 或应用程序中进行设置。
答案4
这又是一场 php 灾难,确实,不依赖系统范围的设置怎么会这么愚蠢?php 现在正走向一个悲惨的方向。