Mozilla Firefox的完整日历多事件事件问题

时间:2019-07-18 13:35:02

标签: javascript fullcalendar

我的全日历有问题,但仅在Mozilla Firefox浏览器上。我想添加2个事件: 首先是日期17.07至20.07,其次是18.07至22.07。 我的浏览器在结果中向我显示了日期为17.07的第一个事件,没有结束日期,第二个正确的结果。我不知道为什么:/在其他浏览器(chrome,opera)中看起来更好。

$('.calendar').fullCalendar({
        header: {
            right: '',
            center: '',
            left: ''
        },
        firstDay: 1,
        buttonIcons: {
            prev: 'calendar__prev',
            next: 'calendar__next'
        },
        theme: false,
        selectable: true,
        selectHelper: true,
        editable: false,
        events: [

        ],

        viewRender: function (view) {
            var calendarDate = $('.calendar').fullCalendar('getDate');
            var calendarMonth = calendarDate.month();

            //Set data attribute for header. This is used to switch header images using css
            $('.calendar .fc-toolbar').attr('data-calendar-month', calendarMonth);

            //Set title in page header
            $('.content__title--calendar > h1').html(view.title);
        },

        eventClick: function (event, element) {
            $('#edit-event input[value='+event.className+']').prop('checked', true);
            $('#edit-event').modal('show');
            $('.edit-event__id').val(event.id);
            $('.title').val(event.title);
            $('.description').val(event.description);
            $('.start_date').val(event.start);
            $('.stop_date').val(event.stop);
            $('.user_full_name').val(event.author);

        },
        eventRender: function(event, element) {
            startDate=event.start.toISOString().substring(0, 10);
            stopDate=event.stop.substring(0, 10);
            title = event.title + "<br />"+' [ '+startDate+' ]'  + ' [ '+stopDate+' ] ';
            element.popover({
              title: title,
              trigger: 'hover',
              placement: 'auto',
              container: 'body',
              html: true
            });
        }
    });

我从api中获取了数据并在该函数上对其进行了编辑。

function getApiData(daysInMonth){
    var api_url = $('input[name="apiUrl"]').val();
    api_url = api_url+'/api/eventStart='+y+'-'+m+'-'+'01'+'&eventStop='+y+'-'+m+'-'+daysInMonth;

    $.getJSON(api_url,function(result){

        $.each(result.data,function(key,index){
            bg = event_color(index.category_name)
            if(index.category_name == "Holiday"){
                title = index.category_name+' - '+index.user_name;

                endDate=index.event_stop.substring(0, 10);
                endTime=index.event_stop.substring(10, 19);

                var datePlus1 = endDate.split('-');
                datePlus1[2] = Number(datePlus1[2])+1;

                if(datePlus1[2] > daysInMonth){
                    datePlus1[2] = '01';
                    datePlus1[1] = Number(datePlus1[1])+1;  

                    if(datePlus1[1]<10){
                        end=datePlus1[0]+'-0'+datePlus1[1]+'-'+datePlus1[2];
                    }
                    else{
                        end=datePlus1[0]+'-'+datePlus1[1]+'-'+datePlus1[2];
                    }
                }
                else{
                    end=datePlus1[0]+'-'+datePlus1[1]+'-'+datePlus1[2];
                }

                $('.calendar').fullCalendar('renderEvent', {
                    id: index.id,
                    title: title,
                    start: index.event_start,
                    end: end,
                    stop: index.event_stop,
                    description:index.event_description,
                    author: index.user_full_name,
                    allDay: true,
                    className: bg,
                }, true);
            }
         }
      }

`

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题。如果天数<10,则函数必须在值日中添加“ 0”,因为日期看起来像这样的2019-11-1而不是2019-11-01。