我有一个应用程序,显示可预订资源的每周(周一至周日)可用性。

在该日历旁边的视图中,用户可以选择:
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()


这将产生一系列日期,供您在合适时使用。

08-16 16:42