练习需要与患者安排预约并将该预约分配给医生。
约会包括各种测试和开始时间。 测试包括名称和持续时间。 因此,我们可以通过将所有必需测试的持续时间相加来计算所需的持续时间。
练习可以选择日期,医生和所需的测试 - 使用ajax,我希望能够返回可用时间段的json对象供患者选择。
-
$practiceOpen = strtotime($input['date'] . ' 10:00');
$practiceClose = strtotime($input['date'] . ' 18:00');
$interval = 20 * 60; // 20 mins
while ($start < ( $end - $requiredDuration * 60 ) )
{
$times[] = date( "Y-m-d H:i", $start);
$start += $interval;
}
获取该医生指定日期的所有约会的集合。
使用appointments[]
(2)和times[]
(1)嵌套foreach,以便从主times[]
中移除所有不可用的时间。
例如
foreach ($appointments as $appointment)
{
foreach($times as $key => $time)
{
$time = strtotime($time);
if (
$time + $requiredDuration * 60 >= strtotime($appointment->appointment)
&&
$time < strtotime($appointment->appointment) + $appointment->duration * 60
) { unset($times[$key]); }
}
}
if语句基本上是
**If**
start time plus the required duration of the tests is larger than the start time of the existing appointment **AND**
start time is less than existing appointment + duration of existing appointment
**Then** Remove that timeslot from array.
问题:上面的代码片段/算法似乎有效,但是需要的是指向正确方向的指针: