Fullcalendar eventDrop时区问题

时间:2016-12-23 19:36:12

标签: fullcalendar momentjs

我们为用户提供了选择自己时区的功能,并在选择不同的时区时调用以下内容(使用moment.tz作为选项)

$('#calendar2').fullCalendar('option', 'timezone', object.options[object.selectedIndex].value || false);

这在查看约会等时效果很好。但是,当用户尝试拖放约会时,它似乎会恢复到他们的" local" PC时间来计算eventDrop上的UTC时间值

示例:

fullcalendar timezone:' America / New_York' (但我的电脑时区设置为太平洋) 拖动事件下午4点到下午12点。 eventDrop

eventDrop: function(event,eventDelta,revertFunc, jsEvent, ui, view) {    
   event.start.format()
}

输出:

2016-12-23T12:00:00-08:00

您可以根据-8:00偏移量判断它是从我的本地PC获取的,而不是从设置为' America / New_York'的时区。它应该是-5:00。处理这个问题的最佳方法是什么?

更新:我使用以下代码解决了这个问题。基本上,您需要自己处理转换时区。 Fullcalendar不会为您执行此操作。

strStartDate =  event.start.format("YYYY-MM-DD HH:mm:ss").toString()

 var start = moment.tz(strStartDate, $('[data-id="timezone-selector"]').find(':selected').val());

 objFCC.saveObject(event.appointmentId,  start.valueOf()  , mins, strResource, function(result, event)

0 个答案:

没有答案