1

当我尝试输出 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');

通过阅读其他问题和示例,这应该可以工作,所以我很困惑为什么不可以。

4

2 回答 2

5

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

于 2012-12-13T21:08:04.977 回答
3

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

于 2012-12-13T21:08:06.783 回答