上下文
我正在构建一个主要基于日历的日程安排功能的webapp。我选择fullcalendar.io来显示事件,因此创建了一个相当简单的mysql结构:
id (autoincrement)
patient_id (the users id)
start (datetime, e.g. 2016-04-06 14:30:00)
end (datetime)
现在我要解决的挑战是找到某一天的可用时间段...... 话虽如此,还有一些变量使它更复杂:
因此,如果session_length = 45 & session_interval = 15
,我们正在寻找75分钟的时间段。
如果时间段是75的倍数,我们需要将其添加到$available_timeslots array()
。
我尝试了什么:
当然,将当天安排的事件放入名为events
的数组中:
Array
(
[0] = Array
(
[title] = Client 24
[start] = 2016-04-06 21:15:00
[end] = 2016-04-06 22:30:00
)
[1] = Array
(
[title] = client 1
[start] = 2016-04-06 16:40:00
[end] = 2016-04-06 17:55:00
)
)
基于更有创意而不是有效代码的各种循环,例如通过1440分钟(= 1天)的循环测试哪些循环与事件重叠。这看起来非常沉重,但是到目前为止我是最好的解决方案。
我想如何使用可用的广告位:
我们的想法是使用以下html模板将模型显示在具有10(或20)个下一个可用日期列表的模式中:
<ul class="available_dates">
<li class="date" data-start="_TIMESLOT_STARTDATE_" data-end="_TIMESLOT_ENDDATE">Monday - 06/04/2016 09:30</li>
<li class="date" data-start="_TIMESLOT_STARTDATE_" data-end="_TIMESLOT_ENDDATE">Monday - 06/04/2016 10:45</li>
</ul>
欢迎提出任何建议,我尝试了数以千计的事情,但找不到可靠而轻量级的解决方案。
谢谢大家的帮助!