Если вы собираетесь сделать это в MySQL, то:
select timestampdiff(hour, clockout_time, clockin_time)
from work_sessions;
Дает вам разницу в часах.Давайте разберемся с этим дальше:
select timestampdiff(hour, clockout_time, date(clockout_time)) as aftermidnight, timestampdiff(hour, date(clockout_time), clockin_time)
from work_sessions;
Я не проверял это, поэтому, если это дает целочисленное значение для часов, вы можете повысить точность, передавая минуты вместо часов, а затем выполните свои вычисления.
В PHP, если у вас есть две даты, $clockinTime
и $clockoutTime
, тогда
$diff = $clockoutTime->diff($clockinTime);
вычислит разницу.
$totalHours = $diff->h;
даст вамобщее количество часов.
$afterMidnight = date('H', $date);
$beforeMidnight = $totalHours - $afterMidnight;
и у вас есть расстояния в часах.
Обратите внимание, я не проверял ни один из этого кода, поэтому, если вы столкнетесь с проблемой, сообщите мне об этом..