我尝试创建一个 rrule 实例,然后设置开始日期/时间 (dtstart),但事件得到错误的时间。
RRULE:FREQ=WEEKLY;INTERVAL=1;WKST=MO;COUNT=20rrule.options:
rrule.options.dtstart = new Date(Date.UTC(2019, 1, 4, 12, 30, 0))rrule.all()查看生成的事件。所有事件现在都具有当前时间,而不是通过 dtstart 设置的时间。它应该显示 12:30我制作了这个沙箱来演示这个问题。
现在,当我在rrule.js 演示页面中执行完全相同的操作时,我得到了正确的结果。在此演示页面上,执行以下操作以了解我的意思:

结果如下:
正如您所看到的,事件的时间设置正确!
任何建议表示赞赏!
找到了答案:
如果在构造函数中显式设置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))})
Run Code Online (Sandbox Code Playgroud)
示例二:给出错误结果
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));
Run Code Online (Sandbox Code Playgroud)
对我来说,这看起来有点违反直觉,因为无论您是在构造函数中设置还是之后设置,设置 dtstart 都应该始终给出相同的结果。
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |