当我尝试输出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');
通过阅读其他问题和例子,这应该有效,所以我很困惑,为什么不是。
答案 0 :(得分:5)
DateTime::diff
方法返回DateInterval
个对象。您得到意外结果是因为您在DateInterval
对象上调用格式,这与DateTime
对象上的实现不同。有关如何使用它的更多信息,请参阅http://php.net/manual/en/dateinterval.format.php。
答案 1 :(得分:3)
DateTime::diff()的输出是一个DateInterval对象,它具有相当不同的formatting含义....特别是关于溢出的读取。另请注意使用%符号强制格式化字符,否则将它们视为字符串字符