试图使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>
答案 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>