为什么无法显示DateTime对象

时间:2012-01-10 16:47:31

标签: php

$date = new DateTime(2011-10-05);
echo $date->format('Y-m-d H:i:s');

运行上面的代码,页面什么都没显示。只是想知道代码是否有任何问题我使用 PHP5(版本5.3.0)

任何人都可以帮助我吗?提前谢谢!

- 更新--- 添加引号后,仍然没有显示任何内容。

$date = new DateTime("2011-10-05");
    echo $date->format('Y-m-d H:i:s');

5 个答案:

答案 0 :(得分:2)

new DateTime(2011-10-05)等于new DateTime(1996),因此毫无意义。你可能意味着new DateTime('2011-10-05')

答案 1 :(得分:1)

在创建对象的日期周围使用引号:

$date = new DateTime("2011-10-05");

答案 2 :(得分:1)

好吧,你的代码运行正常,但你没有把日期放在引号中,因此PHP认为它是公式

2011 - 10 - 05

这给了1996年。你会想要给它一个字符串。 Either way, it works fine

答案 3 :(得分:1)

您忘记将您传递给DateTime构造函数的参数作为字符串。这解决了它:

$date = new DateTime('2011-10-05');

答案 4 :(得分:0)

引用不是我对“无显示”问题的修复(Win 7 Enterprise上的PHP 5.3.10,64位)。 @gnud的建议指出了我的问题:

  

致命错误:带有消息的未捕获异常'异常'   'DateTime :: __ construct():依赖于它是不安全的   系统的时区设置。您必需才能使用   date.timezone设置或date_default_timezone_set()   功能

新代码:

$timezone = new DateTimeZone('America/Chicago');
$dateNow = new DateTime('now', $timezone);
echo $dateNow->format('Y-m-d H:i:s');

给出预期结果:

2012-09-04 17:12:28