Dayspan JS每隔一天就会发生一次事件

时间:2019-08-20 08:09:56

标签: javascript

试图使dayspan事件发生,而不管事件是否每隔n天超过一个月或一年。

以下片段显示了我希望事件在8月1日发生的一个月内的边界问题,但是在dayOfMonth: {every: 2}下,事件发生在7月30日和8月2日。

我可以将dayOfMonth更改为dayOfYear,但是问题可能会在1月1日发生。非常感谢您的帮助。

var cal = ds.Calendar.days(6,ds.Day.build(2019, ds.Month.JULY, 31));

cal.addEvent({
    id: 'someUserProvidedId',
    data: " - Every second day",
    schedule: new ds.Schedule({
        dayOfMonth: {every: 2,offset: 0},
        start: ds.Day.build(2019, ds.Month.JULY, 29),
        end: ds.Day.build(2019, ds.Month.AUGUST, 28),
    })
});


cal.days.forEach((i) => {
    console.log(i.format("ddd, MMM Do YYYY"));
    i.events.forEach((j) => {
        console.log(j.event.data);
    });
});
<script src="https://cdn.jsdelivr.net/npm/dayspan@1.1.0/dist/dayspan.min.js"></script>

1 个答案:

答案 0 :(得分:1)

尽管此代码不使用dayspan插件,但可以完成工作:

var cal = ds.Calendar.days(6,ds.Day.build(2019, ds.Month.JULY, 31));
var counter = 0;

cal.addEvent({
    id: 'someUserProvidedId',
    data: " - Every second day",
    schedule: new ds.Schedule({
        dayOfMonth: {every: 1, offset: 0},
        start: ds.Day.build(2019, ds.Month.JULY, 29),
        end: ds.Day.build(2019, ds.Month.AUGUST, 28),
    })
});


cal.days.forEach((i) => {
    console.log(i.format("ddd, MMM Do YYYY"));
    i.events.forEach((j) => {
        counter++;
        if (counter%2 == 0) {
           console.log(j.event.data);
        }
    });
});
<script src="https://cdn.jsdelivr.net/npm/dayspan@1.1.0/dist/dayspan.min.js"></script>