问题
After resize an event, it returns an incorrect end date.. I don't understand why..
I'm using this code:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultDate: '2014-11-07',
editable: true,
eventDrop: function(event){
event.start._i = event.start.format();
},
eventResize: function(event) {
event.end._i = event.end.format();
},
eventLimit: true, // allow "more" link when too many events
events: [{
id: 'All Day Event',
title: 'All Day Event',
start: '2014-11-03'
}, {
id: 'popo',
title: 'popo',
start: '2014-11-04T10:30:00',
end: '2014-11-05T12:30:00',
description: 'This is a cool event'
}, {
id: 'popo2',
title: 'popo2',
//url: 'http://google.com/',
start: '2014-11-06'
}]
});
If I simply move the event (drag & drop) it works fine and returns correctly the start date,
but if I resize the event, it returns an incorrect end date,
and also the start date becomes incorrect..
DEMO
回答1:
I've create a Plunker where you can see how the update is made.
It's important that, when you modify an event, the object you are modifying is the object that comes from fullCalendar('clientEvents');
Something like this will fail:
myEvent = {
id: 1, title : "myTitle", start: moment()
}
.fullCalendar('renderEvent', myEvent );
mySlot.myTitle = "anotherTitle";
.fullCalendar('updateEvent', myEvent );
But this will work:
myEvent = {
id: 1, title : "myTitle", start: moment()
}
.fullCalendar('renderEvent', myEvent );
myFCEvent = .fullCalendar('clientEvents', 1);
myFCEvent.title = "Another title";
.fullCalendar('updateEvent', myFCEvent);
Demo Plunker
回答2:
My answer comes late but as said in this post, the event.start._i is used for internal logic by Moments.js.
Your event.start does contain your updated date (which i think is located at event.start_d) but you don't need to use these internal objects as FullCalendar will take them into account and will use the correct (updated) date by itself.
回答3:
My issue was solved by this adding .utc().format()
moment.parseZone('2016-05-03T22:15:01+02:00').utc().format(); //"2016-05-03T20:15:01Z"
moment docs reference
来源:https://stackoverflow.com/questions/26814568/fullcalendar-incorrect-event-end-date-after-eventresize