-3

可能重复:
两个日期之间的时间差异(以分钟为
单位)php date_diff(以小时为单位)

我有:

$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 分钟

4

1 回答 1

1

来自 PHP 手册:

笔记:

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

换句话说,DateInterval班级不会自己做你要求的事情。您必须自己进行计算。

这样的事情应该这样做:

$hours = $interval->h + ($interval->d*24);
print "{$hours} hours ".$interval->format('%i minutes');
于 2012-11-30T14:42:31.690 回答