这个问题在这里已经有答案了:
使用datetime::diff()返回两个日期之间的天数(2个答案)
两年前关门了。
我计算到查询日期的差值。当差值小于一个月时,一切正常。下面是一个错误结果的示例:
查询输出:
$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条答案
按热度按时间u91tlkcl1#
日期时间差是正确的,只有在格式化输出时才会出现错误。%d是一个月的某一天,而不是dateinterval中的总天数。这两个日期时间相隔1个月零20天。所以%d只显示20天部分a应该会给你总天数。
有关该格式的完整指南,请参见:http://php.net/manual/en/dateinterval.format.php