我尝试创建一个rrule实例,然后设置开始日期/时间(dtstart),但是事件得到的时间错误。
RRULE:FREQ=WEEKLY;INTERVAL=1;WKST=MO;COUNT=20
rrule.options
中设置dtstart日期,如下所示:
rrule.options.dtstart = new Date(Date.UTC(2019, 1, 4, 12, 30, 0))
rrule.all()
来查看生成的事件。现在,所有事件都具有当前时间,而不是通过dtstart设置的时间。它应该改为显示12:30 我做了这个sandbox来说明问题。
现在,当我在rrule.js demo page中执行完全相同的操作时,我得到正确的结果。 在此演示页面上,执行以下操作以了解我的意思:
这些是结果:
如您所见,事件的时间设置正确!
任何建议表示赞赏!
答案 0 :(得分:2)
找到答案:
如果在构造函数中显式设置distart
,则此问题已解决。
比较以下示例:
示例一:给出正确的结果:
const rrule = new RRule({
freq: RRule.WEEKLY,
interval: 1,
wkst: RRule.MO,
count: 20,
dtstart: new Date(Date.UTC(2019, 1, 4, 12, 30, 0))})
示例二:给出错误的结果
const rrule = new RRule({
freq: RRule.WEEKLY,
interval: 1,
wkst: RRule.MO,
count: 20})
rrule.options.dtstart = new Date(Date.UTC(2019, 1, 4, 14, 30, 0));
对我来说,这看起来有点直觉,因为无论您在构造函数中进行设置还是之后进行设置,设置dtstart都应始终提供相同的结果。