我正在尝试使用start_time
和计算正确的总小时数end_time
这里我使用的算法是由@Pilan 提供的:
对于每组时间预订,执行以下操作
找到最小的start_time
将和duration
之间添加到start_time
end_time
sum
查找下一个最小的时间预订start_time
IF start_time
<previous_end_time
减去sum
END IF的差值
在和duration
之间添加start_time
end_time
跳到4,直到没有匹配的元素为止。
使用上面的内容我成功创建了以下代码:
<?php
class Helper
{
public static function minToHour($minutes)
{
if (empty($minutes)) {
return 0;
}
$hours = floor($minutes / 60);
$min = $minutes - ($hours * 60);
return $hours . ":" . $min;
}
public static function getMinsBetweenTwoTimes($start, $end)
{
$datetime1 = strtotime($start);
$datetime2 = strtotime($end);
$interval = abs($datetime2 - $datetime1);
$minutes = round($interval / 60);
return $minutes;
}
}
$array =array (
'2020-07-14' =>
array (
array (
'start_time' => '09:00:00',
'end_time' => '13:00:00',
'hours' => '4 hours 0 mins',
),
1 =>
array (
'start_time' => '13:30:00',
'end_time' => '16:30:00',
'hours' => '3 hours 0 mins',
),
2 =>
array (
'start_time' => '09:00:00',
'end_time' => '14:00:00',
'hours' => '5 hours 0 mins',
),
),
'2020-07-15' =>
array (
array (
'start_time' => '13:30:00',
'end_time' => '17:00:00',
'hours' => '3 hours 30 mins',
),
1 =>
array (
'start_time' => '09:00:00',
'end_time' => '14:00:00',
'hours' => '5 hours 0 mins',
),
),
);
慕虎7371278
神不在的星期二