Php 格式化具有巨大秒值的DateInterval

Php 格式化具有巨大秒值的DateInterval,php,dateinterval,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秒 没有秒

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


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

这可以通过DateTime类实现

使用:

18天23小时41分7秒

功能:

这可以通过DateTime类实现

使用:

18天23小时41分7秒

功能:

如果这真的对你有帮助,你能把它标记为答案吗?当然。这真的很有帮助。如果这真的对你有帮助,你能把它标记为答案吗?当然。这真的很有帮助。
echo secondsToTime(1640467);
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');
}