PHP回显DateTime对象

mar*_*n87 1 php datetime dateinterval

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

Y-m-d H:i:s
Run Code Online (Sandbox Code Playgroud)

$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');
Run Code Online (Sandbox Code Playgroud)

从阅读其他问题和例子,这应该工作,所以我很困惑,为什么它不是.

Div*_*com 5

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