【问题标题】:fullcalendar.js timezone difference even without passing any timezone or daylight savingfullcalendar.js 时区差异即使没有通过任何时区或夏令时
【发布时间】:2017-10-27 12:56:45
【问题描述】:

我对 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

【问题讨论】:

    标签: javascript jquery datetime fullcalendar momentjs


    【解决方案1】:

    moment 默认解析并显示为当地时间。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

    【讨论】:

      猜你喜欢
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2012-03-21
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多