使用PHP警告DateTime

时间:2012-01-12 12:31:44

标签: php datetime date

我有这段代码:

try{
  $datetime1 = new DateTime("now");
  $datetime2 = new DateTime("now");
  $interval = $datetime1->diff($datetime2);
  var_dump($interval);
}
catch(Exception $e) {
  echo $e->getMessage();
}     

我没有看到关于var_dump的任何结果,php的输出是:

DateTime::__construct(): It is not safe to rely on the system's timezone setting
s. You are *required* to use the date.timezone setting or the date_default_timez
one_set() function. In case you used any of those methods and you are still gett
ing this warning, you most likely misspelled the timezone identifier. We selecte
d 'Europe/Paris' for '1.0/no DST' instead

我正在使用php_cli 5.3.8

我该怎么办? 感谢

2 个答案:

答案 0 :(得分:12)

在PHP5.3中,有必要设置时区。

打开php.ini并找到设置date.timezone。取消注释并将其设置为某个值,例如

date.timezone = "Europe/Paris"

然后重启服务器。它应该处理警告。

[编辑]

@greut提出的解决方案同样适用。两者之间的区别在于php.ini设置是服务器范围的(将应用于现在和将来在服务器上运行的所有应用程序),而date_default_timezone_set()应用于当前仅执行的应用程序。 / p>

php.ini解决方案让您忘记运行的任何其他网站上的警告 - 但您需要访问php.ini。使用date_default_timezone_set()将覆盖php.ini中的设置,因此如果您愿意,可以同时使用这两种方法。

答案 1 :(得分:11)

在您的代码中执行此操作:

date_default_timezone_set('Europe/Paris');

或在php.ini中。

但更好的是,请阅读文档:http://php.net/date_default_timezone_set