计算可预订资源的可用时间段

时间:2016-08-07 07:53:51

标签: javascript datetime reactjs time timezone

我有一个应用程序显示可预订资源的每周(Mon-Sun)可用性。

在视图中,与此日历相邻,用户可以选择:
A)预订所需的时段长度(15分钟/ 30分钟/ 60分钟/)
B)时区

时段始终将小时笔划作为参考点,即如果用户选择查看15分钟的插槽,则可能的起点仅为:00,:15,:30,:45。

我们假设日历内部在明天早上07:23到09:10之间有可用性,并考虑到用户可能想要更改时区 - 管理可用计算的最实用/逻辑方法是什么该时间跨度的时间段?

1 个答案:

答案 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()

这将产生一系列日期供您根据需要使用。