2017-10-10 140 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"] 
    } 
} 

另外,考虑周日作为另一个枚举集合。

相关问题