如何描述(最好以符合标准的方式)JSON中的一些反复发生但不精确的时间间隔?例如,如何描述每天可以购买的产品,但仅限于早上9点至上午11点?如何描述经常性不完整的时间间隔?
喜欢的东西
"product": { "id": 42, "purchaseInterval": ??? }
如何描述(最好以符合标准的方式)JSON中的一些反复发生但不精确的时间间隔?例如,如何描述每天可以购买的产品,但仅限于早上9点至上午11点?如何描述经常性不完整的时间间隔?
喜欢的东西
"product": { "id": 42, "purchaseInterval": ??? }
您可以使用24 hour
格式和指定范围内像
"product": { "id": 42, "purchaseInterval": "9:00-11:00" }
这不涉及问题的“反复出现”部分,也不符合标准。 – pipacs
作为frequencyUnit枚举的可能值:年,月,周,日
我认为你可以有一个非常标准/易于理解/完整的描述与以下JSON:
"product": {
"id": 42,
"purchaseInterval": {
"startTime": "9:00",
"endTime": "11:00",
"frequencyUnit": "weeks",
"frequencyValue": 1,
"weekdays": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
}
}
另外,考虑周日作为另一个枚举集合。
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
或者,您可以使用三小时的事件,并且每天只需重复一次,任何iCalendar实现都可以这样做。 – Tomalak