我们为用户提供了选择自己时区的功能,并在选择不同的时区时调用以下内容(使用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)