使用巨大的秒值格式化DateInterval

时间:2015-03-05 09:29:56

标签: php dateinterval

最近我遇到了一个简单的DateInterval问题。在创建具有巨大秒值的DateInterval对象后,该类不会重新计算其属性,如下所示:

$interval = new DateInterval('PT6685071S');
echo $interval->format("%m months %d days %H hours %i minutes %s seconds");

输出变为:

  

0个月0天00小时0分6685071秒

如何让它显示如下:

  

2个月16天8小时57分51秒

没有将秒数除以60,分钟数除以60等等?

(希望我的计算是正确的)

1 个答案:

答案 0 :(得分:3)

这可以通过DateTime类实现

使用:

echo secondsToTime(1640467);

18天,23小时,41分钟和7秒

功能:

function secondsToTime($seconds) {
    $dtF = new DateTime("@0");
    $dtT = new DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');
}

sample demo