Javascript 正在更新事件完整日历中的开始参数

Javascript 正在更新事件完整日历中的开始参数,javascript,fullcalendar,momentjs,Javascript,Fullcalendar,Momentjs,我在使用library moment.js时遇到问题,因为我试图在Fullcalendar中更新事件,但如果不重新加载页面,eventUpdate与start选项无法很好地配合使用。我在anchor=>document.getElementById('button_edit')中创建了一个addEventListener。addEventListener(“单击”,editControl)调用函数(editControl)来更新事件。此函数首先通过发送带有新属性的ajax帖子来更新事件,然后更新

我在使用library moment.js时遇到问题,因为我试图在Fullcalendar中更新事件,但如果不重新加载页面,eventUpdate与start选项无法很好地配合使用。我在anchor=>document.getElementById('button_edit')中创建了一个addEventListener。addEventListener(“单击”,editControl)调用函数(editControl)来更新事件。此函数首先通过发送带有新属性的ajax帖子来更新事件,然后更新视图=>$(“#calendar”).fullCalendar('updateEvent',y),而无需重新加载页面。它与title参数配合得很好,但与start参数不配合。我知道Fullcalendar中的start参数是用库moment.js构建的,所以我使用y.start=moment(document.getElementById('control\u day\u edit').value)。如果我执行console.log(y.start),控制台会给我一个适当更新日期时间的时间,但是我执行console.log(y),控制台会给我一个带有原始启动参数而不是新参数的事件对象。我注意到第一种情况下的格式有点不同=>矩{u IsamentinObject:true,{u I:“19-01-2015 08:27 PM/P1”,{u isUTC:false,{u pf:Object,{u locale:locale…},在事件对象=>“01/19/2015 04:27 PM”中,我尝试设置日期格式,但控制台给了我无效的日期,因此,我不知道如何在不重新加载页面的情况下更新事件中的start参数

这是我的密码

         events: allControls(controls), 

         eventClick: function(calEvent, jsEvent, view) {
                    x=calEvent.id;
                $('#modalTitle').html(calEvent.title);
                console.log(calEvent.start);
                    $('#control_day_edit').val(moment(calEvent.start._i).format("DD-MM-YYYY hh:mm A/PM"));

                $('#control_level').val(calEvent.title.toString());
                    console.log(calEvent)
                    console.log(calEvent.title)
                    console.log(calEvent.start._i)
                    console.log(calEvent.id)
                $('#eventUrl').attr('href',"/users/:user_id/controls/calEvent.id/edit");
                $('#fullCalModal').modal();
                y=calEvent;

            }
})
}
}))


这条线就是问题所在:

y.start = moment(
              document.getElementById('control_day_edit').value
          ).format("MM-DD-YYYY hh:mm A/PM");
您正在使用
.format
将开始日期设置为字符串。而且不仅仅是一个字符串,而是一个自定义格式的字符串。FC如何知道如何阅读它?使用默认格式

y.start = moment(document.getElementById('control_day_edit').value).format();
或者使用力矩对象本身(更好):


我假设您使用的是fullcalendar 2.x版本。 在fullcalendar的EventObject中,有开始字段和_开始字段。 当你分配 y、 开始=力矩(…) 您将新引用指定给起始字段,但在_startfield中有一个旧引用。 所以您应该更新y.start,而不是指定新对象。
i、 e.y.start.set(…)

你能澄清一下这个问题吗?它需要段落。还要确保你问的是清楚的。我会尝试回答这个问题,但我可能误解了这个问题。
y.start = moment(document.getElementById('control_day_edit').value).format();
y.start = moment(document.getElementById('control_day_edit').value);