用巨大的秒值格式化 DateInterval
Formatting DateInterval with huge seconds value
最近我运行陷入了一个简单的DateInterval
问题。在我创建具有巨大秒值的 DateInterval
对象后,class 不会重新计算其属性,如下所示:
$interval = new DateInterval('PT6685071S');
echo $interval->format("%m months %d days %H hours %i minutes %s seconds");
输出变为:
0 months 0 days 00 hours 0 minutes 6685071 seconds
如何让它显示成这样:
2 months 16 days 8 hours 57 minutes 51 seconds
不将秒除以 60,将分钟除以 60,等等 ?
(希望我的计算是正确的)
这可以通过 DateTime 实现 class
使用:
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');
}
最近我运行陷入了一个简单的DateInterval
问题。在我创建具有巨大秒值的 DateInterval
对象后,class 不会重新计算其属性,如下所示:
$interval = new DateInterval('PT6685071S');
echo $interval->format("%m months %d days %H hours %i minutes %s seconds");
输出变为:
0 months 0 days 00 hours 0 minutes 6685071 seconds
如何让它显示成这样:
2 months 16 days 8 hours 57 minutes 51 seconds
不将秒除以 60,将分钟除以 60,等等 ?
(希望我的计算是正确的)
这可以通过 DateTime 实现 class
使用:
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');
}