PHPconfiguration:依靠系统的时区设置是不安全的

这里是一个奇怪的。 我只是升级到PHP 5.3.0,自升级以来我收到以下警告:

警告:getdate()[function.getdate]:依靠系统的时区设置是不安全的。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。 我们select“美国/芝加哥”作为“CST / -6.0 /无DST”

看了各种论坛后,大家都说要解决这个问题,你所要做的就是在php.ini中编辑date区域并重新启动Apache。

这不适合我。

我试过了

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

我做了改变后重新启动了Apache。

由于我仍然有旧版本的PHP安装,我甚至确保我正在编辑当前版本的PHP在当时使用的php.ini加载

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

仍然收到警告。

有什么build议么?

感谢您抽出宝贵的时间。

对原始问题发表评论的Tchalvak,为我打了个头。 我一直在编辑(我使用Debian):

 /etc/php5/apache2/php.ini 

…它有正确的时区对我来说是唯一的.ini文件被加载在它的date.timezone,但是当我通过Bash运行脚本时,我收到上述错误。 我不知道我应该编辑:

 /etc/php5/cli/php.ini 

以及。 (好吧,对我来说,这也是一样的,因为你可能会有所不同,但是我现在要保持我的Apache和CLI版本的php.ini同步)。

你有没有尝试通过func设置时区: http : //pl.php.net/manual/en/function.date-default-timezone-set.php

我碰巧不得不在最近两台笔记本电脑上设置Apache和PHP。 经过多次哭泣和咬牙切齿之后,我在phpinfo的输出中注意到(无论出于何种原因:在PHP安装过程中不注意,不好的安装程序)Apache期望php.ini处于某个不适合的地方。

两个select:

  1. 把它认为应该是或者的地方
  2. 指向你的php.ini的真实位置的Apache

…并重新启动Apache。 时区设置应该在那个时候被识别。

打开你的.htaccess文件,将这一行添加到文件中,保存并重试:

 php_value date.timezone "America/Sao_Paulo" 

这对我有用。

试试这个,它适用于我。

 date_default_timezone_set('America/New_York'); 

在抱怨的实际文件中。

检查php.ini文件中的语法错误,特别是 Date参数之前 ,以防止正确parsing文件。

请修改您的index.php如下:

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

我修改了/etc/php.ini

[Date]; 定义date函数使用的默认时区; http://php.net/date.timezone date.timezone =('Asia / kolkata')

现在工作正常。

Vipin Pal

显然,我在这个问题上有点不合时宜,但为了下一个患者的利益:我刚刚有这个问题,在我的情况(与OP谁试图没有成功相反)修复是修改php.ini ,改变

 date.timezone = America/New York 

 date.timezone = America/New_York 

这是增加下划线。

您可能忘记删除分号以取消该行的注释。 对于date.timezone = "US/Central"行,请确保该行前面没有分号。

我发现,奇怪的是,我可以通过将时区声明放在我的php.ini文件的顶部来修复这些错误。

它已经在我的php.ini。 实际上两次。 我把头发拉出来,因为大家都在说要装载另外一个ini ……没有。

希望这可以节省别人的时间/脱发。

也可以试试这个

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