6

我刚买了一台新电脑,我一直在设置 PHP/MySQL/数据库等...我想我就差不多了,除了它抛出了这个曲线球。我的登录脚本工作正常,但现在它吐出以下警告(这会弄乱 JSON)。

警告:date() [function.date]:依赖系统的时区设置是不安全的。您 需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第47行 的.../php/login.php中为 'EST/10.0/no DST' 选择了 'Antarctica/Macquarie'

我的代码显然使用date()并在实时版本和旧机器上运行。我收到以下两行代码的两个警告:

$date = date("ymd");

$this_year = date("y");

我的研究(参见此处)表明这些函数的行为取决于 php.ini。

那么我应该在新机器上更改 php.ini,还是使用某种已弃用的方法,我应该date()完全放弃吗?

谢谢。

4

4 回答 4

12

如果您使用date_default_timezone_set(). 只需将其设置为您将在其中工作的时区即可。

像这样的东西应该放在配置文件或您正在处理日期的页面上(如果它只有一页):

date_default_timezone_set('America/Los_Angeles');
于 2012-04-25T01:48:00.257 回答
4

这也不例外,这可能是现在弹出的警告,因为您在新机器上的错误报告设置与旧机器不同。

我建议遵循警告中的建议,并使用date_default_timezone_set()在您需要的脚本中设置时区。

于 2012-04-25T01:48:22.330 回答
4

首先,您虽然可能知道,但这解决了问题。

date_default_timezone_set('Your/Timezone');

如果要在 php.ini 中配置,在下面修改

[Date]
; ...
; ...
date.timezone = Your/Timezone
于 2012-04-25T01:50:12.190 回答
4

您不必更改 php.ini。

但是,如果您有一个将用于大多数 php 文件的时区,则在 php.ini 中添加以下行应该可以解决问题。

date.timezone = "Your/Timezone"

就我而言,我将以下行添加到 php.ini。就个人而言,我更喜欢将我们所有的服务器保持在 UTC 时区。

date.timezone = "UTC"
于 2012-05-12T19:27:06.317 回答