我有这段代码:
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
我该怎么办? 感谢
答案 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