我有一个应用程序显示可预订资源的每周(Mon-Sun)可用性。
在视图中,与此日历相邻,用户可以选择:
A)预订所需的时段长度(15分钟/ 30分钟/ 60分钟/)
B)时区
时段始终将小时笔划作为参考点,即如果用户选择查看15分钟的插槽,则可能的起点仅为:00,:15,:30,:45。
我们假设日历内部在明天早上07:23到09:10之间有可用性,并考虑到用户可能想要更改时区 - 管理可用计算的最实用/逻辑方法是什么该时间跨度的时间段?
答案 0 :(得分:1)
考虑使用库iCalendar RFC中实现的jkbrzt/rrule。查看rrule库演示站点here。
例如,rrule库代码实现的规则将产生您在问题中指定的时间(请记住这是在2016年8月7日,而不是'明天',但我和#39; ;我相信你可以自己处理)看起来像:
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()
这将产生一系列日期供您根据需要使用。