我有一个在客户端使用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"但没有运气。
任何可能出错的想法? 谢谢!
答案 0 :(得分:1)
感谢Fullcalendar的作者指出了我正确的方向。答案是,由于某些未知原因,Node JS无法从操作系统获取正确的时区。它确实在我的开发盒(OSX)上获得它,但在生产盒(Linux)上却没有。
我只是将其添加到我的启动脚本中,现在它就像一个魅力:
export TZ="Europe/Rome"