两个日期的DIFF,得到小时和分钟

时间:2012-11-30 14:31:19

标签: php

  

可能重复:
  Time diff in minutes between 2 dates
  php date_diff in hours

我有:

$datetime1 = new DateTime('2012-12-01 10:40:00');
$datetime2 = new DateTime('2012-12-03 12:00:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%1 day %h hours %i minutes');

这个工作正常,但我怎么能只显示小时和分钟?这个例子应该是:

49小时10分钟

1 个答案:

答案 0 :(得分:1)

从PHP手册:

  

注意:

     

DateInterval :: format()方法不会重新计算时间字符串中的结转点或日期段。这是预期的,因为不可能溢出像“32天”这样的值,这些值可以被解释为从“1个月和4天”到“1个月和1天”的任何内容。

换句话说,DateInterval课程不会独自完成你所要求的;你必须自己做计算。

这样的事情应该这样做:

$hours = $interval->h + ($interval->d*24);
print "{$hours} hours ".$interval->format('%i minutes');