完整日历中的剩余通知



我尝试在Full Calendar(jQuery插件)中实现剩余通知例如:如果我在下午06:00开会,应该在开会前15或20分钟通知我。

这是我的代码,

 setInterval(function(){ 
            var month=['january','february','march','april','may','june','july','august','september','october','november','december'];
            var date = new Date();
            $('.remainder').html("");
            var headerDate = $('.fc-center').text().split(' '); 
            if(headerDate[0].toLowerCase() == month[date.getMonth()] && headerDate[1] == date.getFullYear()){
                console.log(1);
               var allEvents = $('.fc-day-grid-event');
                $.each(allEvents,function(key,value){
                    var eventTime = $(value).find('.fc-time').text();   
                    if(eventTime.length !=0){
                    var getAmPm = eventTime.split('');
                    var AmPm = getAmPm[getAmPm.length-1];
                    var eventTimeArr = eventTime.split(':');
                    var eventDateIndex = $(value).closest('td').index();
                    var eventDate = $(value).closest('.fc-content-skeleton').find('thead td').eq(eventDateIndex).data('date');
                    if($(value).closest('.fc-content-skeleton').find('thead td.fc-day-number').eq(eventDateIndex).html() == date.getDate()){    
                        if(eventTimeArr.length == 1){   
                            eventTimeArr[0] = eventTimeArr[0].slice(0,-1);
                            eventTimeArr[0] = parseInt(eventTimeArr[0])
                            if(AmPm == 'p'){
                                eventTimeArr[0] = parseInt(eventTimeArr[0])+12;
                            }
                            if( Date.parse(eventDate+' '+eventTimeArr[0]+":"+eventTimeArr[1]) - date.valueOf() <= 900000 ){
                                $('.remainder').append( "<span>"+($(value).find('.fc-title').text())+"</span>, ");
                            }
                        }
                        else{
                            eventTimeArr[1] = eventTimeArr[1].slice(0,-1);
                            eventTimeArr[0] = parseInt(eventTimeArr[0])
                            if(AmPm == 'p'){
                                eventTimeArr[0] = parseInt(eventTimeArr[0])+12;
                            }
                            eventTimeArr[1] = parseInt(eventTimeArr[1]);
                            if( Date.parse(eventDate+' '+eventTimeArr[0]+":"+eventTimeArr[1]) - date.valueOf() <= 900000 ){
                               $('.remainder').append( "<span>"+($(value).find('.fc-title').text())+"</span>, ");
                            }
                        }
                    }
                  }
                });    
            }
        }, 1000);

还有我的html,

Remainder : The following task comes up in 15 mins ---- <label class="remainder"></label>

我尝试使用console.log调试它,发现每当它执行.fc-*(.fc中心、.fc日网格事件、.fc时间)时,我的代码都会被卡住

有人能帮我摆脱困境吗。如果您有任何其他解决方案来实现剩余功能,请告诉我。

假设您从数据库中获取事件,我认为在这个解决方案中我根本不会使用fullCalendar。如果用户登录到我的网站,我会每隔一分钟左右通过ajax调用查询数据库,查找在接下来的X分钟内开始的属于用户的任何事件,然后创建一个通知(如果返回)。

相关内容

  • 没有找到相关文章

最新更新