我刚买了一台新电脑,而且我一直在设置PHP / MySQL /数据库等等...我想我就在那里,除了抛出这个曲线球。我的登录脚本运行正常,但是现在它正在吐出以下警告(这会混淆JSON)。
警告:date()[function.date]: 依赖系统的时区设置是不安全的。你是 required 使用date.timezone设置或date_default_timezone_set()函数。如果您使用其中任何一个 方法,你最有可能仍然得到这个警告 拼写错误的时区标识符。我们选择了'南极洲/麦格理' 对于'EST / 10.0 /无DST',而不是在 ... / php / login.php 上 47
我的代码显然使用date()
并且正在使用实时版本和旧机器。我收到以下两行代码的两个警告:
$date = date("ymd");
$this_year = date("y");
我的研究(参见here)表明这些函数的行为取决于php.ini。
我应该在新机器上更改php.ini,还是使用某种不推荐使用的方法,我应该完全放弃date()
吗?
感谢。
答案 0 :(得分:12)
如果使用date_default_timezone_set()
,则无需更改php.ini文件。只需将其设置为您将要工作的时区即可。
这样的东西应该放在配置文件中或者你正在使用日期的页面上(如果只有一页):
date_default_timezone_set('America/Los_Angeles');
答案 1 :(得分:4)
这不是一个例外,它现在可能会弹出一个警告,因为新计算机上的错误报告设置与旧设备不同。
我建议您遵循警告中的建议,并使用date_default_timezone_set()
在您需要的脚本中设置时区。
答案 2 :(得分:4)
首先,虽然你知道,但这解决了这个问题。
date_default_timezone_set('Your/Timezone');
如果要在php.ini中配置,请在下面修改
[Date]
; ...
; ...
date.timezone = Your/Timezone
答案 3 :(得分:4)
您不必更改php.ini。
但是,如果你有一个时区,你将用于你的大多数PHP文件,将以下行添加到你的php.ini应该做的伎俩。
date.timezone = "Your/Timezone"
在我的情况下,我将以下行添加到php.ini中。就个人而言,我更愿意将所有服务器保留在UTC时区。
date.timezone = "UTC"