PHP回显DateTime对象

时间:2012-12-13 21:05:24

标签: php datetime dateinterval

当我尝试输出DateTime对象时,它实际上是打印格式,例如

Y-m-d H:i:s

代码

$db = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'xxx', 'xxx');
$dbTime = new DateTime(current($db->query('SELECT NOW()')->fetchAll(PDO::FETCH_COLUMN, 0)));
$myTime = new DateTime();
$diff = $myTime->diff($dbTime);
echo $diff->format('Y-m-d H:i:s');

通过阅读其他问题和例子,这应该有效,所以我很困惑,为什么不是。

2 个答案:

答案 0 :(得分:5)

DateTime::diff方法返回DateInterval个对象。您得到意外结果是因为您在DateInterval对象上调用格式,这与DateTime对象上的实现不同。有关如何使用它的更多信息,请参阅http://php.net/manual/en/dateinterval.format.php

答案 1 :(得分:3)

DateTime::diff()的输出是一个DateInterval对象,它具有相当不同的formatting含义....特别是关于溢出的读取。另请注意使用%符号强制格式化字符,否则将它们视为字符串字符