日历上的重复事件:RFC 5545 Javascript解析
Recurring events on a calendar : RFC 5545 Javascript parsing
我需要将循环事件集成到完整日历的改编版本中,该版本添加了允许离线事件浏览的javascript模块。
我正在寻找一个可以根据RFC 5545解析重复事件的javascript库。
我需要能够列出在2个日期(开始日期和结束日期)之间发生的所有循环事件,使用RRULE和EXDATE并解释每日,每周,每月和每年的循环。
我花了几个小时寻找一些毫无价值的东西,我不想重新发明轮子....有人可以请指出我在正确的方向为现有的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())
相关文章:
- 如何将 RFC 3339 中的日期转换为 javascript 日期对象(自 1970 年以来的毫秒)
- URI模板:javascript中是否有rfc-6570实现
- python websocket handshake (RFC 6455)
- 电子邮件地址需要@符号才能被视为符合RFC
- Web套接字服务器v13 RFC 6455客户端不接收消息
- 我应该如何转义这个JavaScript正则表达式(RFC 2822电子邮件验证器)
- RFC 2822和ISO 8601日期格式正则表达式
- 日历上的重复事件:RFC 5545 Javascript解析
- 将RFC 1123日期格式转换为JavaScript中的正常日期时间
- 将RFC 822日期转换为javascript的有效日期
- 生成一个类似于Google Tasks API的RFC 3339时间戳
- 在javascript或jQuery中转换RFC 3339日期为dd-M-yyyy
- javascript RFC 3986 implementation?
- 用javascript操作RFC 2822电子邮件