2012-02-02 104 views
11

我一直在使用FullCalendar插件,現在我已經設法使它在FF和Chrome中工作,但我似乎無法理解爲什麼事件不會在Safari上出現。FullCalendar事件只在Safari上不顯示

我正在使用Rails後端將事件作爲數組獲取。這是FireBug顯示的事件的JSON對象。

_end: Invalid Date  
_id: "1953" 
_start: Fri Feb 10 2012 00:00:00 GMT+0530 (IST) 
allDay: false 
backgroundColor: "#F60 !important" 
className: Array[0] 
color: "#FFFFFF !important" 
description: "" 
end: Invalid Date 
start: Fri Feb 10 2012 00:00:00 GMT+0530 (IST) 
textColor: "#FFFFFF !important" 
__proto__: Object 

我在safari控制檯上沒有錯誤。無效結束日期在FF和Chrome上顯示爲null

這是我如何填充

event[:id]      = each_event.id  
event[:title]    = each_event.event_title  
event[:allDay]    = each_event.all_day? 
event[:start]    = each_event.start_time.strftime('%Y-%m-%d %H:%M:00')  
event[:end] = each_event.end_date.to_time.strftime('%Y-%m-%d %H:%M:00') if each_event.end_date.present?   
event[:color]    = '#FFFFFF !important'  
event[:backgroundColor]  = (each_event.user == current_user) ? '#F60 !important' : '#090 !important'   
event[:backgroundColor]  = '#090 !important' unless each_event.private?  
event[:textColor]   = '#FFFFFF !important' 

我試圖轉換的日期時間,以ISO8601格式太的事件,並沒有奏效。我對這個問題是完全無能爲力的。我真的很感謝一些幫助。

+0

同樣的問題在這裏。你有沒有設法解決這個問題? – melat0nin 2012-06-07 10:00:21

+2

我一直在使用fullCalendar一段時間,直到這一點,我遇到的所有問題都是日期解析有點不同。例如(Mac上的Safari 6.0(7536.25)) - 新日期('01 -01-2000')無效,因爲在其他瀏覽器中,它是完全有效的。在這些情況下,您應該用正斜槓替換所有連字符,以便結果類似於新日期('01/01/2000')。我希望這是有幫助的。 – woot 2012-08-19 19:10:28

+1

@TomReznik在我的情況下,這是字符串,這個問題讓我看到了正確的地方。但它不是破折號與斜線問題,在我的情況下,它用破折號完美地工作。相反,它是當天的格式,我輸出一個數字(2012-11-1),缺少的領先0是什麼扔掉它。我想這個錯誤在今年年底時會更常見,我確定這個月有同樣的錯誤,但在10月和11月它沒有被注意到。 – DigitalDesignDj 2012-11-09 19:58:23

回答

0

您的字符串格式不正確。

而不是使用

event[:start] = each_event.start_time.strftime('%Y-%m-%d %H:%M:00') 
event[:end] = each_event.end_date.to_time.strftime('%Y-%m-%d %H:%M:00') if each_event.end_date.present? 

嘗試使用

event[:start] = each_event.start_time.to_json 
event[:end] = each_event.end_date.to_time.to_json if each_event.end_date.present? 

根據FullCalendar文檔的開始和結束的屬性需要一個Date對象或IETF格式的字符串,ISO8601格式或UNIX時間戳。因爲strftime('%Y-%m-%d %H:%M:00')都不是這些,所以代碼將不起作用。

http://arshaw.com/fullcalendar/docs/event_data/Event_Object/

1

我有類似的問題。 我使用的DateTime的.iso8601功能是什麼幫助:

event[:start] = each_event.start_time.iso8601 
event[:end] = each_event.end_date.to_time.iso8601 if each_event.end_date.present? 

ISO8601格式給出輸出,如:2017-01-25T16:15:49 + 01:00

+0

老問題,但這個答案似乎不錯。從rfc822更改爲iso8601爲我工作。 – 2017-05-05 16:52:05