We have Moodle
plugin
, where we add the travel time
of each employee.
Until now, we calculated the duration of the travel time in days
, as we added the data for every employee only in such form timepickup
- 21.10.2105 timereturn
-23.10.2015.
The data was being added in the function here:
$user->timepickup = gmdate("Y-m-d H:i", $timepickup);
$user->timereturn = gmdate("Y-m-d H:i", $timereturn);
And the calculating of the travel time here:
$datetime1 = strtotime($employee->timepickup);
$datetime2 = strtotime($employee->timereturn);
$interval = $datetime2 - $datetime1;
As you can see, we add the option to import the exact time
in hours
and minutes
of the timepickup
and timereturn
.
How to calculate the travel time and display it in days
and half days
(we assume, that half day
are 4 hours
from the 8 hour
working day.
So instead of travel time 1 day(s)
for adding timepickup
- 21.10.2105 08:00
timereturn
-23.10.2015 12:00
, we will have displayed 0,5 day(s)
.
Something like this could work
$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;
It's a bit crude, but you'll end up with adding a half day if the remainder of the time difference is 4.5 hours or less, and adding a whole day if the remainder is larger than 4.5.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With