2017-10-10 144 views
2

如何描述(最好以符合標準的方式)JSON中的一些反覆發生但不精確的時間間隔?例如,如何描述每天可以購買的產品,但僅限於早上9點至上午11點?如何描述經常性不完整的時間間隔?

喜歡的東西

"product": { "id": 42, "purchaseInterval": ??? }

+3

iCal RRULE格式是使用的東西。它可以制定幾乎每一個奇數球重複規則。每日9到11可能看起來像'RRULE:FREQ = DAILY; BYHOUR = 9,10,11'。適用的標準是RFC 2445.查看一些[實踐示例](https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm#ADMIN12415),[spec](https ://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html)和[方便的幫助頁面](https://www.kanzaki.com/docs/ical/)在iCal格式上。解析器庫被廣泛使用,但不一定每個人都實現了每個功能。 – Tomalak

+0

或者,您可以使用三小時的事件,並且每天只需重複一次,任何iCalendar實現都可以這樣做。 – Tomalak

回答

0

您可以使用24 hour格式和指定範圍內像

"product": { "id": 42, "purchaseInterval": "9:00-11:00" } 
+0

這不涉及問題的「反覆出現」部分,也不符合標準。 – pipacs

0

作爲frequencyUnit枚舉的可能值:年,月,周,日

我認爲你可以有一個非常標準/易於理解/完整的描述與以下JSON:

"product": { 
    "id": 42, 
     "purchaseInterval": { 
      "startTime": "9:00", 
      "endTime": "11:00", 
      "frequencyUnit": "weeks", 
      "frequencyValue": 1, 
      "weekdays": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] 
    } 
} 

另外,考慮週日作爲另一個枚舉集合。

相關問題