Fullcalendar 完整日历:获取;Va.时间未定义“未定义”;尝试为event.end分配时间时

Fullcalendar 完整日历:获取;Va.时间未定义“未定义”;尝试为event.end分配时间时,fullcalendar,Fullcalendar,我使用的是FullCalendar,它工作正常。 我允许用户拖动事件,但有时我需要强制事件在特定日期开始。例如,某些事件必须在星期一开始,因此如果用户将其拖到其他工作日,我将强制事件移到上一个星期一 因此,在eventDrop回调中,我有如下内容: jQuery('#calendar').fullCalendar({ ... ... eventDrop: function(event, delta, revertFunc) { if (/*must force new event s

我使用的是FullCalendar,它工作正常。 我允许用户拖动事件,但有时我需要强制事件在特定日期开始。例如,某些事件必须在星期一开始,因此如果用户将其拖到其他工作日,我将强制事件移到上一个星期一

因此,在eventDrop回调中,我有如下内容:

jQuery('#calendar').fullCalendar({
...
...
  eventDrop: function(event, delta, revertFunc) {
    if (/*must force new event start date*/) {
      var duration = event.end.diff(event.start, 'd');
      event.start = moment('2015-07-01');
      event.end = moment('2015-07-01').add(duration, 'd');
    }
  }
})
一些人解释说:

  • 我必须计算原始的持续时间,因为当我更改 开始日期,Fullcalendar假定结束日期相同并发生更改 事件持续时间相应缩短。所以它迫使我指定一个新的终点 日期(还有其他方法吗?)
  • 将新日期指定给event.start可以正常工作
  • 将新日期指定给event.end始终返回:
TypeError:Va.time未定义

我是否遗漏了什么,或者可能是过于复杂了? 这个错误是错误吗


提前谢谢你在这方面帮助我

只需修改现有的
力矩
,如下所示:

eventDrop: function (event) {
    event.start.day(1); //Move the startdate to day 1 (Monday, 0 = Sunday)
    event.end.day(1); //Also move the enddate to Monday
}

我不确定是什么原因导致了这个错误。看起来这与在
事件.start
事件.end
中设置一个新的momentjs对象有关。非常感谢您为我指明了正确的方向。因为我必须计算新的开始日期和结束日期,所以我使用一个时刻来计算并确定它的dayOfYear()。然后我用event.start.dayOfYear()和event.end.dayOfYear()更新日期,问题就解决了。出于某种原因,momentjs没有一个简单的方法来更新它的日期(类似于moment.date('YYYY-MM-DD'))@AlexandrePaulo我希望它能解决您的问题,如果您需要更多帮助,请告诉我;)我有一个类似的问题,获得
ab。时间是未定义的
。我还发现我的行
event.end=moment(event.start).add(2,'hours')导致此错误。使用moment.js更改事件对象的时间会从对象中删除一些重要变量!之前:
Object{{isammentobject:true、\isUTC:true、\u offset:0、\u pf:Object、\u locale:Object、\u d:Date 2016-05-06T00:00:00.000Z、\u ambigTime:true、\u ambigZone:true、\u fullCalendar:true}
之后缺少:
\u ambigTime:true、\u ambigZone:true、\u fullCalendar:true