调整事件大小后,会返回错误的结束日期..我不明白为什么......
我正在使用此代码:
$('#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'
}]
});
如果我只是移动事件(拖放),它可以正常工作并正确返回开始日期,
但如果我调整事件的大小,则返回错误的结束日期,
并且开始日期也变得不正确..
答案 0 :(得分:0)
我创建了一个Plunker,您可以在其中查看更新的方式。
重要的是,当您修改事件时,您正在修改的对象是来自fullCalendar('clientEvents')的对象;
这样的事情会失败:
myEvent = {
id: 1, title : "myTitle", start: moment()
}
.fullCalendar('renderEvent', myEvent );
mySlot.myTitle = "anotherTitle";
.fullCalendar('updateEvent', myEvent );
但这会奏效:
myEvent = {
id: 1, title : "myTitle", start: moment()
}
.fullCalendar('renderEvent', myEvent );
myFCEvent = .fullCalendar('clientEvents', 1);
myFCEvent.title = "Another title";
.fullCalendar('updateEvent', myFCEvent);
答案 1 :(得分:0)
我的回答很晚,但如this post所述,event.start._i由Moments.js用于内部逻辑。
您的event.start确实包含您更新的日期(我认为它位于event.start_d)但您不需要使用这些内部对象,因为FullCalendar会将它们考虑在内并使用正确的(更新的) )单独约会。
答案 2 :(得分:0)
通过添加.utc().format()
moment.parseZone('2016-05-03T22:15:01+02:00').utc().format(); //"2016-05-03T20:15:01Z"