JQuery fullCalendar:日期/事件的问题 - 它渲染一个小时太晚了!

Oxo*_*mer 5 jquery unix-timestamp fullcalendar

我有点奇怪,我刚刚在我的fullCalendar实现中发现了.

基本上,我在数据库"28/04/2011 09:00:00"(dmy)中有一个日期,我将其转换为Unix时间戳,结果为1303981200.0.

我已经通过http://www.onlineconversion.com/unix_time.htm查看了,时间戳有效.

但是,当我将此JSON传递给fullCalendar时,它会在一小时后呈现该事件!

JSON是:

[{"id":"4a315750666d2f70675241544936762b632f514f51513d3d","title":"Blah blah blah","description":"","start":1303981200,"end":1303983000,"className":"A-16","allDay":false}]
Run Code Online (Sandbox Code Playgroud)

百思不得其解

谢谢.

Jam*_*mes 4

嘿 amit_g,我也使用 php 生成的时间戳遇到了这个问题。出现此问题的原因是时间戳并不“字面上”包含时区,因此当 FC 通过 JavaScript 使用 Date() 对其进行转换时,将使用您的本地时区。

我通过在向 FC 提供事件时简单地使用完整的 ISO 8601 日期格式而不是时间戳来解决这个问题。

$startTimestamp = 1303776000; //2011-04-26 at 12am
$startISO = date('c', $startTimestamp);
echo $startISO; //Outputs 2011-04-26T00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

在事件开始时仅向 FC 提供 $startTimestamp 会根据我的时区(由于 DST,当时为 -4 EST)显示事件,因为时间戳是上午 12 点,javascript Date() 减去 4 小时,因此显示我的事件一整天早些时候在FC上。现在使用 ISO 日期可以在正确的时间显示我的所有事件。希望这对其他人有帮助!