2012-02-02 19 views
11

Pracuję już od wersji FullCalendar i udało mi się uruchomić ją w FF i Chrome, ale wydaje mi się, że nie rozumiem, dlaczego zdarzenia nie mają miejsca. pokaż w Safari.Wydarzenia FullCalendar nie wyświetlają się tylko w Safari

Używam backendu Rails, aby pobrać zdarzenia jako tablicę. Jest to obiekt JSON dla zdarzeń wyświetlanych przez 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 

Nie mam żadnych błędów na konsoli safari. Nieprawidłowa data zakończenia pojawia się jako null na FF i Chrome.

Oto jak zapełnić wydarzenia

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' 

próbowałem konwersji DateTime do formatu ISO8601 zbyt i to nie działa. Nie mam zielonego pojęcia, na czym polega problem. Byłbym wdzięczny za pomoc.

+0

sam problem tutaj. Czy zdołałeś kiedyś to naprawić? – melat0nin

+2

Używam fullCalendar już od jakiegoś czasu i aż do tego momentu wszystkie problemy, które napotkałem w Safari, to fakt, że daty są przetwarzane nieco inaczej. Na przykład (Safari 6.0 (7536.25) na Macu) - nowa data ('01 -01-2000 ') jest nieprawidłowa, tak jak w innych przeglądarkach, jest całkowicie poprawna. W takich przypadkach powinieneś zastąpić wszystkie łączniki znakami ukośnymi, aby wynik był jak nowa Data ('01/01/2000 '). Mam nadzieję, że to będzie pomocne. – woot

+1

@TomReznik W moim przypadku były to smyczki, a to pytanie skłoniło mnie do spojrzenia we właściwe miejsce. Ale to nie był problem z ukośnikami i ukośnikami, w moim przypadku działa idealnie z kreskami. Zamiast tego był to format dnia, wyprowadzałem pojedynczą cyfrę (2012-11-1), a brakujące wiodące 0 to to, co zrzuciłem. Przypuszczam, że ten błąd pojawia się częściej pod koniec roku, jestem pewien, że miesiąc cierpi z powodu tego samego błędu, ale został niezauważony w październiku i listopadzie. – DigitalDesignDj

Odpowiedz

0

Twój ciąg nie jest w odpowiednim formacie.

Zamiast

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? 

spróbuje użyć

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

Według dokumentacji FullCalendar właściwości początkowych i końcowych wymaga obiekt Date lub ciąg w formacie IETF, formatu ISO8601 lub znacznik czasu UNIX . Ponieważ strftime('%Y-%m-%d %H:%M:00') nie jest żadnym z nich, kod nie zadziałałby.

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

1

miałem podobny problem. Co pomogło mi był przy użyciu funkcji .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 Format daje wyjście jak: 2017-01-25T16: 15: 49 + 01: 00

+0

Stare pytanie, ale ta odpowiedź wydaje się dobra. Pomogło mi przejście z rfc822 na iso8601. –

Powiązane problemy