设置fullcalendar事件的结束覆盖开始

设置fullcalendar事件的结束覆盖开始,fullcalendar,momentjs,Fullcalendar,Momentjs,当您将外部项目放到fullcalendar上时,它会自动设置事件的开始日期,但结束时间为空。所以我想做的是将结束时间设置为2小时后 eventReceive: function(event){ event.end = event.start; console.log(event.start.format()); // 2014-12-14T07:00:00 event.end.add(2, 'h'); console.log(event.start.format

当您将外部项目放到fullcalendar上时,它会自动设置事件的开始日期,但结束时间为空。所以我想做的是将结束时间设置为2小时后

eventReceive: function(event){
    event.end = event.start;
    console.log(event.start.format()); // 2014-12-14T07:00:00 
    event.end.add(2, 'h');
    console.log(event.start.format()); // 2014-12-14T09:00:00 
    ...
每当我尝试这样做时,
event.start
event.end

编辑
forceEventDuration
解决,但仍然好奇它为什么会这样做?

事件。start
是一个
对象。您传递的是对象引用,而不是值。要了解这在javascript中是如何工作的,请执行以下命令:

var x = {"a": 10}
var y = x
y["a"] = 5
console.log(x)

这将返回
{“a”:5}
,因为您更改了引用的对象。在传递对象之前,您需要先创建对象的副本(克隆)。

能否提供一个提琴作为示例,以便我向您展示如何更改代码以使其正常工作?