admin管理员组文章数量:1425899
Suspected code:
<script src=".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"));
Console got that:
TypeError: rule.exdate is not a function
But if we follow the official guide RRule repo manual
We can observe the solution as :)
// Add a exclusion date to rruleSet rruleSet.exdate(new Date(Date.UTC(2012, 5, 1, 10, 30)))
I'm unable to figured it out where am i wrong ?
Thanks in advance.
Regards,
Aizaz
Suspected code:
<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"));
Console got that:
TypeError: rule.exdate is not a function
But if we follow the official guide RRule repo manual
We can observe the solution as :)
// Add a exclusion date to rruleSet rruleSet.exdate(new Date(Date.UTC(2012, 5, 1, 10, 30)))
I'm unable to figured it out where am i wrong ?
Thanks in advance.
Regards,
Aizaz
3 Answers
Reset to default 2const 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"));
Here, it will exclude 12th Aug and gives back (10,11,13,14 of Aug).
RRuleSet is a different object to RRule. You will find exdate on the RRuleSet object and not on the RRule.
- Create a RRuleSet
- Add add your RRule
- Add your exclusion on the RRuleSet
The EXDATE
prop will only work in RRuleSet
. So, after including rrule.js
script, you can exclude a single date or multiple dates like this:
const RRuleSet = rrule.RRuleSet;
const rruleSet = new RRuleSet();
rruleSet.rrule(
new RRule({
freq: RRule.DAILY,
count: 5,
dtstart: new Date("2022-04-15"),
})
);
rruleSet.exdate(new Date("2022-04-25"));
// Again add 'exdate()' to exclude another date
rruleSet.exdate(new Date("2022-04-28"));
After that, convert rruleSet
into string using toString()
let rruleStr = rruleSet.toString();
So, to check recurrence you should first convert rruleStr
string to object using rrulestr()
and than iterate rule using all()
, before()
, after()
or between()
retrival methods:
let ruleSetObj = rrule.rrulestr(rruleStr);
let ruleNextOccurrence = ruleSetObj.after(new Date('2022-04-25'), true);
本文标签: javascriptHow to exclude date in RRulejsStack Overflow
版权声明:本文标题:javascript - How to exclude date in RRule.js? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745458279a2659204.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论