1

最近我遇到了一个简单的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 等?

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

4

1 回答 1

5

这可以通过 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');
}

示例演示

于 2015-03-05T09:35:34.323 回答