gpt4 book ai didi

javascript - fullCalendar:如何在 clientEvents 中按日期过滤?

转载 作者:行者123 更新时间:2023-11-30 05:41:14 29 4
gpt4 key购买 nike

为了避免重叠事件,我使用了这个函数:

    function isOverlapping(event){
var array = $('#calendar').fullCalendar('clientEvents');
for(i in array){
if(array[i].id != event.id){
if(array[i].allDay || event.allDay){
if(array[i].start.getDate() == event.start.getDate()){
if(array[i].start.getMonth() == event.start.getMonth()){
return true;
}
}
}
else{
if(event.end > array[i].start && event.start < array[i].end){ return true;}
}
}
}
return false;
}

如果我的日历有很多事件,功能很慢,为了提高速度,我认为只比较当前 View 中的事件会很好,所以我希望我可以使用 clientEvents 过滤函数如下:

    var array = $('#calendar').fullCalendar('clientEvents', function(events){ return (event.start >= view_start && view_end > event.start)});

但这会返回所有事件。

注意:我已将 view_startview_end 声明为全局变量,并在 ViewDisplay 中计算它们,如下所示:

 view_start = view.visStart;
view_end = view.visEnd;

如何获取当前 View 中可见的事件。

最佳答案

您要使用的 oneliner 的问题是 event.start 实际上是一个对象。我能够使用类似这样的东西:

moment(calEvent.start).format('YYYY-MM-DD')

所以对于你的情况尝试:

var array = $('#calendar').fullCalendar('clientEvents', function(events){ return (moment(events.start).format('YYYY-MM-DD') >= view_start && view_end > moment(events.start).format('YYYY-MM-DD'))});

关于javascript - fullCalendar:如何在 clientEvents 中按日期过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703806/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com