You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rrule.js中rrulestr含EXDATE时RRuleStrOptions的dtstart不生效问题

这是rrule.js库rrulestr方法的设计特性导致的:当你传入的规则字符串仅包含单行RRULE开头的内容时,方法会正常读取options中配置的dtstart参数并注入规则;如果传入的是包含EXDATE的多行完整iCalendar规则串,方法会默认你传入的是完整规则集合,不再读取options中的dtstart配置。

解决方案1:在规则串中补充DTSTART

把DTSTART作为第一行拼入传入的规则字符串即可,示例代码:

const rrule = rrulestr(
`DTSTART:20210801T100000Z
RRULE:INTERVAL=1;FREQ=DAILY;COUNT=5
EXDATE:20210802T100000Z`
)

调用rrule.toString()即可正常输出包含DTSTART的完整规则。

解决方案2:解析后手动赋值dtstart属性

如果不想拼接字符串,也可以在解析完成后手动给rrule实例的dtstart属性赋值,示例代码:

const rrule = rrulestr(
  "RRULE:INTERVAL=1;FREQ=DAILY;COUNT=5\nEXDATE:20210802T100000Z"
)
// 手动设置起始时间
rrule.dtstart = new Date("2021-08-01T10:00:00+00:00")

该方式下后续调用rrule.toString()也会正常带出DTSTART字段。


内容的提问来源于stack exchange,提问作者Jun Nakashima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:42:02