2015-01-15 4 views
1

Fullcalendar шоу «дата окончания» один выходной день
JSON является 12 января, до 16-го, но календарь шоу 12-го по 15-й здесь кодFullcalendar шоу «дата окончания» один выходной день

var calCon = $('.cal'); 
calCon.fullCalendar({ 
    prev: 'left-single-arrow', 
    firstDay: 1, 
    weekends:true, 
    weekNumbers:true, 
    ignoreTimezone:false, 
    allDayDefault:true, 
    weekNumberCalculation:"ISO", 
    defaultView:"basicWeek", 
    timeFormat: 'H(:mm)', 
    events: { 
     url: "/calendarjson.xsp", 
     cache: false 
    } 
}) 

здесь является JSon

[{"color":"#3a87ad","id":"123","allday":"1","url":"/...","end":"2015-01-16T10:00:00.0+0100","start":"2015-01-12T09:00:00.0+0100","title":"Thomas Adrian"}] 

enter image description here

Я использую allDayDefault, потому что время не имеет значения.
Что я делаю неправильно?

Я использую последнюю fullcalender 2.2.5
Я попытался изменить время, но это все тот же

ответ

7

FullCalendar.js использует эксклюзивные конечные моменты. В документации указывается here. Это означает, что конечный момент события не относится к временному интервалу от начала до конца, но отмечает момент времени сразу после этого интервала.

Важным моментом здесь является то, что вы задали значение по умолчанию для allDay равным true. Вы используете 2015-01-16T10:00:00.0+0100 в качестве конечной точки для события. Но событие allDay НЕ хранит информацию о времени внутри компании fullCalendar. Он отключает время и сохраняет только дату. Вы используете 2015-01-16T10:00:00.0+0100 в качестве конечной точки. Время лишено, и конец становится эксклюзивным, что приводит к 2015-01-15T23:59:59.0+0100, каков результат, который вы видите в своем полном календаре. Вы должны были использовать 2015-01-17T00:00:00.0+0100 как конец вашего события allDay, чтобы он продлился до 16 января 23:59:59.

+0

Спасибо, имеет смысл –

Смежные вопросы