2016-08-07 39 views
0

我有一個應用程序顯示可預約資源的每週(週一至週日)可用性。計算可預訂資源的可用時間段

在視圖中,鄰近該日曆,用戶可以選擇:
A)所需的插槽的長度到預定(15分鐘/ 30分鐘/ 60分鐘/)
B)時區

時段始終以小時衝程爲參考點,即如果用戶選擇查看15分鐘時間段,則可能的起點僅爲:00,:15,:30,:45。

讓我們假設明天早上07:23和09:10之間的日曆可用,並考慮到用戶可能想要更改時區 - 管理計算的最實用/合理的方法是什麼?那段時間的可用時間段?

回答

1

考慮使用在庫jkbrzt/rrule中實施的iCalendar RFC。查看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() 

這將產生日期的數組,您可以根據您認爲合適的使用。