php datetime diff返回错误的差异

vngu2lb8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(302)

这个问题在这里已经有答案了

使用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;
u91tlkcl

u91tlkcl1#

日期时间差是正确的,只有在格式化输出时才会出现错误。%d是一个月的某一天,而不是dateinterval中的总天数。这两个日期时间相隔1个月零20天。所以%d只显示20天部分a应该会给你总天数。
有关该格式的完整指南,请参见:http://php.net/manual/en/dateinterval.format.php

相关问题