fullcalendar.js时区差异,即使没有通过任何时区或夏令时

时间:2017-05-26 15:06:40

标签: javascript jquery datetime fullcalendar momentjs

我遇到fullcalendar.js(https://fullcalendar.io/)的问题。我用标准ISO格式创建一个事件,如下所示:

var startDateTime = '2017-07-26T08:00:00';
var endDateTime = '2017-07-26T13:00:00';
var event={id:1 , title: eventData.data('text'), start:startDateTime, end:endDateTime}; 
$('#calendar').fullCalendar('renderEvent', event, true);

当我尝试使用以下代码检索此日期时:

 var allEvents = [];
 allEvents = $('#calendar').fullCalendar('clientEvents');
  var event = $.grep(allEvents, function (v) {     
   alert(moment(+v.start).format("YYYY-MM-DDTHH:mm:ss"));
 });   

我得到一个不同的值2017-07-26T10:00:00而不是2017-07-26T08:00:00,就好像已经指定了夏令时但是你可以看到我从未定义夏令时或时区

如何以与输入相同的值取回日期?

请查看此jsfiddler以获取完整示例fullcalendar example

1 个答案:

答案 0 :(得分:2)

  

默认情况下,时刻会以当地时间进行分析和显示。Moment Documentation

使用moment.utc()来使用UTC时间。

function showEventData(){
 alert('test');
 var allEvents = [];
   allEvents = $('#calendar').fullCalendar('clientEvents');
   var event = $.grep(allEvents, function (v) {
     alert(moment.utc(+v.start).format("YYYY-MM-DDTHH:mm:ss"));
   });   
}

Updated Fiddle