PHP DateTime差异返回错误的差值

时间:2018-08-05 08:17:33

标签: php mysql datetime

我计算与查询日期之间的差额。如果差异小于一个月,则一切正确。这是错误结果的示例:

查询输出:

$row['start'] = '2018-08-06';
$row['end'] = '2018-09-26';

代码:

$start = new DateTime($row['start']);
$end = new DateTime($row['end']);
$days = $start->diff($end)->format("%d");

输出:

$days = 20;

1 个答案:

答案 0 :(得分:1)

DateTime差异正确,并且仅在格式化输出时出现错误。 %d是月份中的日期,而不是DateInterval中的总天数。这两个日期时间相隔1个月和20天。因此%d仅显示20天部分。 %a应该可以为您提供总天数。

有关格式的完整指南,请参见: http://php.net/manual/en/dateinterval.format.php