PHP将秒转换为秒、分钟、小时,小时数超过24

PHP将秒转换为秒、分钟、小时,小时数超过24,php,datetime,Php,Datetime,我想把秒转换成秒,分,然后是小时,任何超过24小时的都应该包括总小时数。目前我有 function secondsToTime($seconds) { $dtF = new DateTime("@0"); $dtT = new DateTime("@$seconds"); return $dtF->diff($dtT)->format('%hH %iM %ss'); } 但是当我使用 secondsToTime(90000) 我得到: 1H 00M 00S

我想把秒转换成秒,分,然后是小时,任何超过24小时的都应该包括总小时数。目前我有

function secondsToTime($seconds) {
    $dtF = new DateTime("@0");
    $dtT = new DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%hH %iM %ss');
}
但是当我使用

secondsToTime(90000)
我得到:

1H 00M 00S
相反,它应该说

25H 00M 00S

我知道这在技术上是正确的,但如何将天/周/月转换为小时?

您不需要使用
DateTime
,只需要简单的算术

$h = floor($seconds / 3600);
$m = floor(($seconds % 3600) / 60);
$s = $seconds % 60;
return sprintf("%dH %02dM %02dS", $h, $m, $s);

您不需要使用
DateTime
,只需要简单的算术运算

$h = floor($seconds / 3600);
$m = floor(($seconds % 3600) / 60);
$s = $seconds % 60;
return sprintf("%dH %02dM %02dS", $h, $m, $s);

把所有的日子乘以24,你就可以在几小时内得到它们;看;将$seconds除以3600并四舍五入。可能的副本是将所有的天乘以24,你可以在小时内得到它们;看;将$seconds除以3600并向下取整。可能重复