首页 > 解决方案 > 如何在 RRule.js 中排除日期?

问题描述

疑似代码:

<script src="https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"></script>
// Create a rule:
        const rule = new rrule.RRule({
            freq: rrule.RRule.DAILY,
            dtstart: new Date('{{ date('Y-m-d', strtotime($product->details->date_from . ' -1 day'))}}'),
            until: new Date('{{$product->details->date_to_1 ? date('Y-m-d', strtotime($product->details->date_to_1 . ' +1 day'))  : date('Y-m-d', strtotime($product->details->date_to . ' +1 day'))}}'),
        });

        rule.exdate(new Date("2020-06-25"));

控制台得到了:

TypeError: rule.exdate is not a function

但是如果我们按照官方指南RRule repo manual

我们可以观察到解决方案:)

// Add a exclusion date to rruleSet
rruleSet.exdate(new Date(Date.UTC(2012, 5, 1, 10, 30)))

我无法弄清楚我错在哪里?

提前致谢。

问候,
艾扎兹

标签: javascriptlaravellaravel-6rrule

解决方案


const rruleSet = new RRuleSet();
rruleSet.rrule(
  new RRule({
    freq: RRule.DAILY,
    count: 5,
    dtstart: new Date("Aug 2020 10 10:30 am"),
  })
);
rruleSet.exdate(new Date("Aug 2020 12 10:30 am"));

在这里,它将排除 8 月 12 日并返回(8 月的 10、11、13、14)。


推荐阅读