PHP 计算 8 小时工作日的一半

PHP calculate half of 8 hour working day

我们有 Moodle plugin,我们在其中添加每位员工的 travel time。 到目前为止,我们计算了 days 中的旅行持续时间,因为我们仅以 timepickup- 21.10.2105 timereturn-23.10.2015 的形式添加了每个员工的数据。

正在此处的函数中添加数据:

$user->timepickup = gmdate("Y-m-d H:i", $timepickup);
$user->timereturn = gmdate("Y-m-d H:i", $timereturn);

这里计算行程时间:

$datetime1 = strtotime($employee->timepickup);
$datetime2 = strtotime($employee->timereturn);
$interval = $datetime2 - $datetime1;

如您所见,我们在 timepickuptimereturnhoursminutes 中添加了导入 exact time 的选项。

如何计算旅行时间并将其显示在dayshalf days中(我们假设half day4 hours来自8 hour工作天.

因此,我们将显示 0,5 day(s),而不是添加 timepickup- 21.10.2105 08:00 timereturn-23.10.2015 12:00 的旅行时间 1 day(s)

类似这样的方法可行

$pickup = strtotime($employee->timepickup);
$return = strtotime($employee->timereturn);
$timediff = ($return - $pickup) / 3600;

$days = floor($timediff / 8);
$halfday = ($timediff - $days * 8) / 4.5;

$days += $halfday < 1 ? 0.5: 1;

有点粗糙,但如果剩余时差小于或等于 4.5 小时,则增加半天,如果剩余时差大于 4.5 小时,则增加一整天。