我有一个应用程序显示每周(周一至周日(可预订资源的可用性。
在视图中,与此日历相邻,用户可以选择:
A(需要预订的时段长度(15分钟/30分钟/60分钟/(
B(时区
时隙总是以小时笔划作为参考点,即,如果用户选择查看15分钟的时隙,则可能的起点仅为:00、:15、:30、:45。
让我们假设日历内部在明天早上07:23到09:10之间可用,并考虑到用户可能想要更改时区-管理该时间段可用时隙计算的最实用/最合乎逻辑的方法是什么?
考虑使用库jkbrzt/rrule中实现的iCalendar RFC。点击此处查看rrule库演示网站。
例如,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()
这将产生一个日期数组,供您根据需要使用。