2011-04-26 85 views
5

我在我的fullCalendar實現中發現了一些奇怪的東西。JQuery fullCalendar:帶日期/事件的問題 - 它太晚了!

基本上,我在數據庫「28/04/2011 09:00:00」(dmy)中有一個日期,我將它轉換爲Unix Timestamp,結果爲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}] 

莫名其妙

感謝。

回答

4

嘿amit_g,我也遇到了這個使用php生成的時間戳。出現這個問題的原因是時間戳不'字面上'包含時區,所以當它由JavaScript轉換爲Date()時,FC將使用本地時區。

我通過簡單地使用完整的ISO 8601日期格式來解決此問題,而不是提供事件給FC時的時間戳。

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

供應FC只需$ startTimestamp作爲事件開始根據我的時區(美國東部時間-4在由於DST的時間),因爲時間戳是上午12點顯示的情況下,JavaScript的日期()減去4個小時,因此在FC上提前一整天顯示我的活動。現在使用ISO日期可以在正確的時間顯示我所有的活動。希望這可以幫助別人!

+0

謝謝@ user725755,這工作得很好!路要走。謝謝。 – Oxonhammer 2011-04-27 08:03:05

+1

對於c#使用類似這樣的DateTime.Now.ToString(「o」) – Mike 2013-07-02 19:25:49

1

很可能這個時候discrepency是由於日光節約時間。 Fullcalendar代碼可能被設置爲當前客戶的時間;您可能需要根據時區和夏時制差異進行調整。見時區陷阱FullCalendar documentation。不是太有幫助,但可能會指出你在正確的方向。

+0

謝謝。它指出我需要的確切方向。 – 2014-10-27 18:57:59

+0

我試圖通過Asp.net Webforms提供事件詳細信息,並且轉換DateTime.ToLocalDate()爲我做了訣竅。 – 2014-10-27 18:59:12