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

Php 如何将工作时间转换为工作日?,php,datetime,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

我想以天和小时为单位显示一个可读字符串,但我需要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');
}
来源:

DateTime在这里没有帮助。你需要自己计算

但这是简单的数学。天数的整数除法和小时的模数法

$hours = 12345;

$days = floor($hours/7);
$restHours = $hours%7;

echo "{$days} days, {$restHours} hours"; //1763 days, 4 hours
DateTime在这里没用。你需要自己计算

但这是简单的数学。天数的整数除法和小时的模数法

$hours = 12345;

$days = floor($hours/7);
$restHours = $hours%7;

echo "{$days} days, {$restHours} hours"; //1763 days, 4 hours

处理这个问题的定制代码可能有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

印刷品

1天1小时0分0秒


处理这个问题的定制代码可能有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

印刷品

1天1小时0分0秒


DateTime对你没有帮助,因为它假设一天的时间在23到25小时之间。你可能需要做你自己的事情。DateTime对你没有帮助,因为它假设一天的时间在23到25小时之间。您可能需要做自己的事情。还需要基本匹配以从秒到小时。@JonStirling是的,但OP编写的以天和小时为单位显示小时数,因此我假设小时是输入数据,尽管他的函数可能以秒为参数。谢谢,我想这是一个数学问题,但我不能做这个简单的计算。我总是忘记模的用法。也是从秒到小时的基本匹配。@JonStirling是的,但OP写的以天和小时显示小时数,所以我假设小时是输入数据,尽管他的函数可能以秒为参数。谢谢,我想这是一个数学问题,但我不能做这个简单的计算。我总是忘记模的用法。