我有一个应用程序,显示可预订资源的每周(周一至周日)可用性。
在该日历旁边的视图中,用户可以选择:
A)预定的预定插槽长度(15分钟/ 30分钟/ 60分钟/)
B)时区
时隙始终以时程作为参考点,即,如果用户选择查看15分钟的时隙,则可能的起始点仅为:00,:15,:30,:45。
让我们假设日历内部在明天早上07:23到09:10之间具有可用性,并考虑到用户可能想要更改时区-这是管理用于计算可用时隙的最实用/逻辑方法那段时间?
最佳答案
考虑使用库iCalendar RFC中实现的jkbrzt/rrule。查看rrule库演示站点here。
例如,rrule库代码实现了一条规则,该规则将产生您在问题中指定的时间(请记住,这是在2016年8月7日,而不是“明天”,但我敢肯定您可以自己处理)看起来像:
let rrule = new RRule({
freq: RRule.HOURLY,
dtstart: new Date(2016, 7, 7, 7, 12, 0),
until: new Date(2016, 7, 7, 9, 10, 0),
byminute: [0, 15, 30, 45]
})
然后,您可以致电:
rrule.all()
这将产生一系列日期,供您在合适时使用。