Php DateTime差异返回错误的值
我想使用datetime对象返回从现在到某个datetime之间的天数。我的约会是:Php DateTime差异返回错误的值,php,datetime,Php,Datetime,我想使用datetime对象返回从现在到某个datetime之间的天数。我的约会是: $now = "2018-03-08 14:00:00"; $last = "2018-02-06 20:00:00"; 我是这样做的: $now = new DateTime(); $last_dt = new DateTime($last); $difference = $last_dt->diff($now); $difference->format('%d'); $num_of_da
$now = "2018-03-08 14:00:00";
$last = "2018-02-06 20:00:00";
我是这样做的:
$now = new DateTime();
$last_dt = new DateTime($last);
$difference = $last_dt->diff($now);
$difference->format('%d');
$num_of_days = $difference->d;
出于某种奇怪的原因,$num_of_days的值是1(而不是30)
有人知道为什么吗
谢谢您需要使用
日期间隔::$days
以天为单位获取总数
DateInterval::$d
只是天数,但以“分组形式”,即对于DateInterval::$d
而言,32天的差异将返回2,对于DateInterval::$m
,则返回1
$last = "2018-04-10 20:00:00";
$now = new DateTime();
$last_dt = new DateTime($last);
$difference = $last_dt->diff($now);
echo "Difference: ".$difference->m." months and ".$difference->d." days, or ".$difference->days." days in total";
结果
差异:1个月2天,或总共33天
您可以在中看到更多类似内容:您可以使用
%a
而不是%d
来获取总天数