我有:
$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 分钟
我有:
$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 分钟
来自 PHP 手册:
笔记:
DateInterval::format() 方法不会重新计算时间字符串或日期段中的结转点。这是意料之中的,因为不可能溢出像“32 天”这样的值,它可以解释为从“1 个月零 4 天”到“1 个月零 1 天”的任何内容。
换句话说,DateInterval
班级不会自己做你要求的事情。您必须自己进行计算。
这样的事情应该这样做:
$hours = $interval->h + ($interval->d*24);
print "{$hours} hours ".$interval->format('%i minutes');