【发布时间】:2019-09-06 16:09:28
【问题描述】:
我想返回两个日期之间的小时和分钟差异。问题是 diff 方法的结果返回给我的 diff 为 0(相同的 DateTimes)。
这是我的实际代码:
$last_vote_date = new DateTime(\Auth::user()->last_vote_at);
$next_vote_date = $last_vote_date;
$next_vote_date->add(new DateInterval('PT3H'));
$diff = $next_vote_date->diff($last_vote_date, true);
$vote_hours = $diff->format('%h h %I m');
我调试了我的变量。 $last_vote_date 是正确的日期时间。
$next_vote_date 是一个正确的 DateTime,表示最后投票日期 + 3 小时。
但是 diff 返回的 DateInterval 对象的所有属性都是 0 :
DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 0 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 )
我真的不明白出了什么问题,因为我正在比较的两个 DateTime 对象是不同的,并且正是我想要的值。
【问题讨论】:
标签: php datetime diff datediff date-difference