如何将工作时间转换为工作日?

时间:2016-09-05 13:33:29

标签: php datetime

我希望以天和小时的形式显示数小时作为人类可读的字符串,但我需要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');
}

来源:Convert seconds into days, hours, minutes and seconds

2 个答案:

答案 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秒