События FullCalendar не отображаются только в Safari - PullRequest
11 голосов
/ 02 февраля 2012

Я немного работал с плагином FullCalendar, и мне удалось заставить его работать в FF и Chrome, но я не могу понять, почему события не отображаются в Safari.

Я использую бэкэнд Rails для извлечения событий в виде массива.Это объект JSON для событий, которые отображает FireBug.

_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   

У меня нет ошибок в консоли сафари.Недопустимая дата окончания отображается как null в FF и Chrome.

Вот как я заполняю события

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, но этого не произошлоРабота.Я совершенно не понимаю, в чем проблема.Буду очень признателен за помощь.

Ответы [ 3 ]

1 голос
/ 25 января 2017

У меня была похожая проблема.Что мне помогло, так это использование функции .iso8601 формата DateTime:

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 голосов
/ 14 апреля 2019

У меня была похожая проблема. Я изменил свой формат даты с:

"2019-05-09 04:00:00"

до

"2019-05-09T04: 00: 00"

0 голосов
/ 13 сентября 2012

Ваша строка не в правильном формате.

Вместо использования

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...