我计算与查询日期之间的差额。如果差异小于一个月,则一切正确。这是错误结果的示例:
查询输出:
$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;
答案 0 :(得分:1)
DateTime差异正确,并且仅在格式化输出时出现错误。 %d是月份中的日期,而不是DateInterval中的总天数。这两个日期时间相隔1个月和20天。因此%d仅显示20天部分。 %a应该可以为您提供总天数。
有关格式的完整指南,请参见: http://php.net/manual/en/dateinterval.format.php