Fullcalendar RRule exdate/exrule 不排除日期

Posted

技术标签:

【中文标题】Fullcalendar RRule exdate/exrule 不排除日期【英文标题】:Fullcalendar RRule exdate/exrule is not excluding date 【发布时间】:2021-11-30 07:40:24 【问题描述】:

当我尝试将异常添加到重复发生的 fullcalendar 事件时,它什么也没做。周期性事件每周正确显示,但无一例外。

我想要实现的是显示一系列事件,排除某个日期,甚至更好的是日期和时间之间的范围,如“排除属性”部分所述:https://fullcalendar.io/docs/rrule-plugin

这是我的活动:

events: [
                
                  id: '291',
                  resourceId: '29',
                  color: '#71CA83',
                  textColor: '#ffffff',
                  description: 'Manager1 Manager1 : 08:00:00 - 10:30:00',
                  rrule: 
                    freq: 'weekly',
                    interval: 1,
                    byweekday: 'rrule.RRule.MO',
                    dtstart: '2021-03-01T08:00:00'
                  ,
                  duration: '02:00',
                  exdate: ['2021-10-11'] 
                
]

我正在使用 fullcalendar 5.9.0(具有商业许可证)和 rrule 2.6.8。值得一提的是:我正在使用 MacOS Big Sur 运行 Macbook。

谁能告诉我为什么这不起作用?我尝试了多种解决方案并阅读了大量文档,但似乎没有任何效果。

【问题讨论】:

I am using fullcalendar 2.9.0... 但是如果你看一下,rrule 集成直到版本 4 才引入,并且直到版本 5.5 才扩展。第 2 版文档没有提及 rrule 对不起,我用的是5.9.0 嗯,好的。在这种情况下,几乎可以肯定与此问题中的问题相同:***.com/questions/69258139/… 不幸的是,这似乎并没有解决我的问题。我尝试了带括号和不带括号的解决方案,但事件仍然存在...... 我向您展示的答案与括号无关 - 我不确定您是如何得出这个结论的?这完全是因为您的 exdate 设置中没有时间 【参考方案1】:

您还需要在exdate 中指定要排除的时间,否则它将与dstart 设置中提到的特定时间段不匹配。

exdate: ['2021-10-11T08:00']

工作演示:https://codepen.io/ADyson82/pen/MWvKgzY

如果您只在exdate 中指定日期,那么它只会查找要排除的“全天”事件,它不会考虑当天发生的所有事情。我显然没有为此编写代码或规范,但可以想象这样一种场景,您希望在特定日期排除某些全天事件,但仍显示定时事件。我想这种行为的目的是为了解决这种情况。

【讨论】:

感谢您提供的 codepen 示例,这真的很有帮助。我认为我的问题正在发生,因为我正在使用资源时间线视图。将进行更多调查。 不,您在任何视图中都会遇到同样的问题。您使用的视图类型与 fullCalendar 是否决定从列表中排除事件无关。答案不能解决你的问题吗?它应该。 我更改了演示,使其显示所有不同的视图类型。我的排除规则在它们中都是一样的(你可以刷新相同的链接来查看更新)。如果您遇到问题,请确保按照我的示例将 exdate 时间从 07:00 更改为 08:00。 非常感谢!这提供了更多的见解。我现在看到 exdate 时间必须与 dtstart 时间完全匹配才能工作。这也意味着不幸的是,部分排除可能是不可能的。我试图为多名工人制定一个工作时间表,其中他们可以包括他们的正常工作时间并排除他们有时可能是半天的假期时间。但这似乎不适用于 exdate 函数。我会调查 exrule 看看我是否可以使用该功能实现这一点 - 或者如果您有想法,请告诉我 我不明白为什么你不能以编程方式设置 exdate 规则,如果你知道排除的事件是半天还是全天(你这样做,因为你显然持有事件数据) .您认为这方面的障碍是什么?

以上是关于Fullcalendar RRule exdate/exrule 不排除日期的主要内容,如果未能解决你的问题,请参考以下文章

创建和存储 cookie

javascript对cookie进行管理

前端记录cookie 点赞只能点一次

第三方库-时间函数dateutil

Fullcalendar:即使 fullcalendar 接受 drop,可拖动对象也将 fullcalendar 拒绝为 droppable

JavaScript Cookie函数