FullCalendar - eventDrop UTC日期

时间:2014-11-12 01:34:45

标签: javascript jquery datetime fullcalendar momentjs

我已经设置了FullCalendar的这个演示:

http://jsfiddle.net/k5de79b3/

           eventDrop: function(event,dayDelta,minuteDelta,allDay,revertFunc) {
                var eventData = {};
                eventData.event_id = event.id;
                eventData.start = event.start.toDate();

                var year = eventData.start.getUTCFullYear();
                var month = eventData.start.getUTCMonth() + 1;
                var day = eventData.start.getUTCDate();
                var hours = eventData.start.getUTCHours();
                var minutes = eventData.start.getUTCMinutes();
                var seconds = eventData.start.getUTCSeconds();
                if(month < 10){ month = '0' + month; }
                if(day < 10){ day = '0' + day; }
                if(hours < 10){ hours = '0' + hours; }
                if(minutes < 10){ minutes = '0' + minutes; }
                if(seconds < 10){ seconds = '0' + seconds; }

                eventData.start = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
                alert(eventData.start);
            }

显示如何为已删除的事件返回的日期/时间具有误导性。

放置处理程序设置为返回已删除事件的UTC日期时间。但是你会注意到,如果你在 11/10/2014 08:00:00 上放弃一个活动,那就是返回的时间。

我在太平洋时区( -8 ),所以如果我正在使用日历并在下午2点(当地时间)放弃一个活动,那么不应该返回的UTC时间晚上10点

还有其他人注意到这种行为吗?

1 个答案:

答案 0 :(得分:9)

要获得所需的结果,您需要在初始化日历时添加timezone:'local'

FullCalendar中timezone的默认值为&#34;无时区&#34;,as specified in the docs。所以不,它不会考虑您当地的时间。

this more-readable version of your code发布(无时区)时使用a version where it will use your local timezone查看差异。