Fullcalendar呈现错误的时间和日期

时间:2014-06-19 15:51:18

标签: timezone fullcalendar

我有一个在客户端使用Fullcalendar的NodeJS应用程序。

这个相同的应用程序,在我的开发环境中运行时,会使用正确的日期和时间呈现日历。

当我在生产盒上运行它时,日期和时间都会出错。它就像它忽略了时区信息一样。奇怪的是,客户端仍然是我,并且生产服务器将输出与您在那里看到的相同的JSON作为输出:

  

[{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA""开始&#34 ;: #&34; 2014-06-18T22:00:00.000Z""端":" 2014-06-19T18:00:27.000Z""&阿迪#34;:假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA""开始&# 34;:" 2014-06-19T22:00:00.000Z""端":" 2014-06-20T18:00:27.000Z"&# 34;阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA"&#34 ;开始":" 2014-06-20T22:00:00.000Z""端":" 2014-06-21T18:00:27.000Z" "阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA&#34 ;, "开始":" 2014-06-21T22:00:00.000Z""端":" 2014-06-22T18:00:27.000Z& #34;"阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA&# 34;,"开始":" 2014-06-22T22:00:00.000Z""端":" 2014-06-23T18:00 :27.000Z& #34;"阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":" PROVA&# 34;,"开始":" 2014-06-23T22:00:00.000Z""端":" 2014-06-24T18:00 :27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题":&#34 ; PROVA""开始":" 2014-06-24T22:00:00.000Z""端":" 2014-06- 25T18:00:27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题&#34 ;: " PROVA""开始":" 2014-06-25T22:00:00.000Z""端":" 2014 -06-26T18:00:27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题&# 34;:" PROVA""开始":" 2014-06-26T22:00:00.000Z""端":&# 34; 2014-06-27T18:00:27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7"&#34 ;标题":" PROVA""开始":" 2014-06-27T22:00:00.000Z""端" :" 2014-06-28T18:00:27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7""标题& #34;:" PROVA""开始":" 2014-06-28T22:00:00.000Z""端":& #34; 2014-06-29T18:00:27.000Z""阿迪":假},{" ID":" 53a2d4f2eec975b1095ef5c7"&# 34;标题":" PROVA""开始":" 2014-06-29T22:00:00.000Z""端&#34 ;:" 2014-06-30T18:00:27.000Z""阿迪":假},{" ID":" 53a2fe7beec975b1095ef5c9" "标题":" AAA""开始":" 2014-06-18T06:00:00.000Z""端":" 2014-06-18T11:00:00.000Z""阿迪":假}]

日历正在以这种方式初始化:

  $(document).ready(function() {
    $('#calendar').fullCalendar({
      events: '/scheduler/events',
      firstDay: 1,
      timeFormat: 'HH:mm',
      header: {
        left: 'title',
        center: '',
        right: 'today, prev, next, month, agendaWeek'
      },
      timezone: "local",
      dayClick: function(date, jsEvent, view) {
      },
      eventClick: function(event, jsEvent, view) {
        });
      }
    });

例如,我在CEST时区,JSON的第一条记录应显示为2014-06-19 00:00:00开始,结束时间为2014-06-19 20:00:27但它显示2014-06-18 22:00:00和2014-06-19 18:00:27

我尝试将Fullcalendar的时区选项设置为" local",false," UTC"," CEST"但没有运气。

任何可能出错的想法? 谢谢!

1 个答案:

答案 0 :(得分:1)

感谢Fullcalendar的作者指出了我正确的方向。答案是,由于某些未知原因,Node JS无法从操作系统获取正确的时区。它确实在我的开发盒(OSX)上获得它,但在生产盒(Linux)上却没有。

我只是将其添加到我的启动脚本中,现在它就像一个魅力:

export TZ="Europe/Rome"