我需要将重复事件集成到完整日历的改编版本中,该版本添加了一个允许离线事件浏览的 javascript 模块。
我正在寻找一个可以根据 RFC 5545 解析重复事件的 javascript 库。
我需要能够列出发生在两个日期(开始日期和结束日期)之间的所有重复事件,使用 RRULE 和 EXDATE 并解释每日、每周、每月和每年的重复。
我已经花了几个小时寻找没有 aval 的东西,而且我不想重新发明轮子....任何人都可以为现有的 javascript 解析器指出正确的方向吗?
我需要将重复事件集成到完整日历的改编版本中,该版本添加了一个允许离线事件浏览的 javascript 模块。
我正在寻找一个可以根据 RFC 5545 解析重复事件的 javascript 库。
我需要能够列出发生在两个日期(开始日期和结束日期)之间的所有重复事件,使用 RRULE 和 EXDATE 并解释每日、每周、每月和每年的重复。
我已经花了几个小时寻找没有 aval 的东西,而且我不想重新发明轮子....任何人都可以为现有的 javascript 解析器指出正确的方向吗?
我检查了 skyporters rrule_parser 并发现它不支持所有规则(特别是它不会正确执行 BYDAY)。我找到了一个很棒的选择:
https://github.com/jakubroztocil/rrule
他们正在积极支持这个库,并且有一个很棒的演示网站,展示了所有的功能。您可以从 5545 格式或纯文本(使用 nlp 扩展名)进行解析。它功能丰富,据我所知,功能齐全。
查看https://github.com/skyporter/rrule_parser。
我希望它会帮助你。
这是 jquery 的重复出现小部件,它解析/创建 RFC5545 兼容的重复出现字符串。
https://github.com/collective/jquery.recurrenceinput.js
但是,它不会将重复规则扩展到发生日期。但它包括一个 python 服务器,可以使用 python-dateutil 为您完成:http: //labix.org/python-dateutil
我自己需要这个功能以及时区支持,所以我制作了一个 typescript/javascript 库:rSchedule。
目前支持除 BYSETPOS、BYWEEKNO 和 BYYEARDAY 之外的所有 ICAL 重复规则。支持与 ICAL 格式的序列化以及大量额外内容。
例子:
const rule = new RRule({
frequency: 'YEARLY',
byMonthOfYear: [2, 6],
byDayOfWeek: ['SU', ['MO', 3]],
start: new Date(2010,1,7),
}, {
dateAdapter: StandardDateAdapter
})
let index = 0;
for (const date of rule.occurrences()) {
date.toISOString()
index++
if (index > 10) break;
}
rule.occurrences({
start: new Date(2010,5,7),
take: 5
})
.toArray()
.map(date => date.toISOString())