我们有Moodle
plugin
,我们在其中添加了每个员工的travel time
。
到目前为止,我们在days
计算了旅行时间的持续时间,因为我们仅以timepickup
- 21.10.2105 timereturn
- 2015年10月23日的形式为每位员工添加了数据。
这里的数据正在添加数据:
$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;
正如您所看到的,我们添加了导入exact time
hours
和minutes
以及timepickup
的{{1}}的选项。
如何计算旅行时间并将其显示在timereturn
和days
中(我们假设half days
half day
来自4 hours
个工作日。
因此,添加8 hour
- 1 day(s)
timepickup
- 21.10.2105 08:00
而不是旅行时间timereturn
,我们会显示23.10.2015 12:00
。
答案 0 :(得分:2)
这样的事情可以起作用
$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则增加一整天。