我想使用DateTime对象返回NOW和某个日期时间之间的天数。我的约会时间是:
$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)
有人知道为什么请吗?
谢谢
答案 0 :(得分:3)
您需要使用DateInterval::$days
来获取总天数。
DateInterval::$d
只是天数,但在"分组表格中#34;,即DateInterval::$d
和1
的{{1}}和DateInterval::$m
的32天差异将返回2 }。
$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天
您可以在the manual
中查看更多内容