PHP - 查找下一个可用时间段

时间:2009-11-05 18:11:43

标签: php date time comparison

我正在寻找帮助来编写脚本来查找下一个可用的时间段。

Ex:A人想要约会,每天可用的时间段是上午9点,中午12点,下午4点,下午6点,晚上9点

因此,我需要检查现有数据并比较为其他约会预订的时段,然后找到下一个可用的数据。

$apts = array(
        'Person 1' => '1/1/09-9:00',
        'Person 2' => '1/1/09-12:00',
        'Person 3' => '1/1/09-18:00',
        'Person 4' => '1/1/09-21:00'
        );

所以,我需要找到针对$ apts的人员A的下一个时段,它应该在下午4点(1/1 / 09-16:00)出现。然后来到人B,他/她的下一个时段应该是'1/2 / 09-9:00',因为在1/1/09没有更多时间段,所以第二天上午9点。

从那以后? 谢谢!

1 个答案:

答案 0 :(得分:1)

从语义上讲,数据库将是最佳解决方案。如果要使用一个列timeperson_id的表,其中time被编码为UNIX时间(虽然很容易适应其他格式),您可能只想运行:

SELECT time FROM table WHERE person_id = 0 AND time > 1234567890 LIMIT 1;

保持原有的PHP解决方案,一个语义上合理的解决方案可能只是运行while循环来搜索下一个可用的时间段。

$timeslot = $desired_timeslot;
while(in_array($timeslot, $apts)) {
    $timeslot = get_next_timeslot($timeslot);
}
return $timeslot;

当然,您必须定义函数get_next_timeslot()以适合您的编码/组织方法。