我希望以天和小时的形式显示数小时作为人类可读的字符串,但我需要1天等于7小时,所以是工作日。
我找到了这个解决方案,但基于1天相当于24小时:
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');
}
答案 0 :(得分:4)
DateTime
在这里无济于事。你需要自己计算。
但这是简单的数学。整数除以天和模数小时。
$hours = 12345;
$days = floor($hours/7);
$restHours = $hours%7;
echo "{$days} days, {$restHours} hours"; //1763 days, 4 hours
答案 1 :(得分:2)
自定义代码来处理这个问题(可能有1000种方法可以实现这一点,我并不认为这是最好的,或者是好的或类似的东西)。
function secondsToTime($seconds) {
$totalMinutes = intval($seconds / 60);
$totalHours = intval($totalMinutes / 60);
$totalDays = intval($totalHours / 7);
echo "$totalDays days and ".($totalHours%7)." hours ".($totalMinutes%60)." minutes and ".($seconds%60)." seconds";
}
e.g。
secondsToTime(8*60*60);
打印
1天1小时0分0秒