2011-12-02 108 views
0

我從JSON字符串中取回有效的ISO8601,但它在fullcalendar中顯示不正確。fullcalendar解析ISO8601日期不起作用

創建與JAVA格式化日期格式: 的SimpleDateFormat DF =新的SimpleDateFormat( 「YYYY-MM-dd'T'HH:MM:ss.sZ」) df.setTimeZone(TimeZone.getTimeZone( 「歐洲/柏林」 ))

配置日曆的:

ignoreTimezone:假, TIMEFORMAT = H:毫米{ - H:毫米}

JSON-結果:

{ 
    "id":1, 
    "title":"Date with Chuck Norris", 
    "start":"2011-12-02T09:30:00.0+0100", 
    "end":"2011-12-02T10:30:00.0+0100", 
    "color":"", 
    "allDay":false 
} 
  • 取開始時間9:30是DB值,但+0100未被識別,因此顯示時間爲9:30,但這是錯誤的,必須是10:30。同爲結束日期

...

(得到肯定,這將是正確的解析,我做了配置的另一件事:) eventRender:函數(事件,元素){ event.start = $ .fullCalendar.parseDate(event.start); //也試過$ .fullCalendar.parseISO8601() event.end = $ .fullCalendar.parseDate(event.end); //也試過$ .fullCalendar.parseISO8601() }

  • 與onEventRender和parseDate(),但沒有試過發生

  • 試圖與onEventRender和parseISO8601() - >但沒有任何反應和JS-錯誤(見attachement:JS-error.png)

使用jQuery 1.6.3和最新fullcalendar 1.5.2

非常感謝您睦H!

乾杯,

馬爾科

回答

0

按我理解你的日期格式[2011-12-02T09:30:00.0 + 0100]指在歐洲/柏林格式9:30。我嘗試創建該事件,並將我的系統設置爲GMT格式,並在日曆中顯示爲8:30。如果您通過這種格式並在同一時區(歐洲/柏林)進行檢查,則不會出現任何差異。

+0

嗨,仰慕者。 Thx爲您的答覆。 好的,我說得沒錯。如果我住在德國(使用utc +01:00),並且我得到的日期時間字符串如示例中最後顯示的+01:00所示,它不會發生任何事情,因爲我住在01:00範圍?那是有線的! 因此,如果我想在+ 02:00和相同的json結果爲+01:00的時區生活,它會創建-1小時= 08:30?我的理解是否正確? 所以在這種情況下,有什麼可以成爲fullcalendar的解決方案?有什麼建議麼?非常感謝你 – grailsInvas0r

+0

應該在(+2:00)10:30。 fullcalendar中發生的情況是,創建的日期對象位於客戶端時區中,並且偏移量(60分鐘)應用於客戶端時區日期對象。因此,您必須牢記這一點。我認爲最好將ignoreTimeZone:true並在服務器端執行任何處理,以便fullcalendar只顯示給定的日期時間。 –