2014-12-22 3 views
9

ich vorbei eine Veranstaltung wie diese fullcalendar:FullCalendar - Ereignis der ganzen Tages Spanning ist ein Tag zu kurz

{ 
    id: 31, 
    title: 'Test', 
    start: '2014-12-22', 
    end: '2014-12-23', 
    allDay: true 
} 

ich im Kalender ein Ereignis finden erwartet, dass zwei Tage erstreckt, aber die Ereignis ist nur in der 2014-12-22 Slot, nicht in der 2014-12-23 eins. Der nextDayThreshold-Parameter ist auf 00:00:00 festgelegt, sollte jedoch gemäß der Dokumentation ignoriert werden, wenn allDay auf true festgelegt ist. Ich bin sicher, dass allDay korrekt interpretiert wird, da das Ereignis in der Agendaansicht in der ganztägigen Zeile angezeigt wird.

Wie kann ich Vollkalender einstellen, um ein solches Ereignis in beiden Tagen anzuzeigen?

Antwort

5

Ich glaube dies eine bewusste Design-Entscheidung, in der alle Endtermine als exklusiv zu betrachten sind, basierend auf Diskussionen wie this und this, dh obwohl ein ganztägiges Ereignis ist, wird Ihr Enddatum nicht als inbegriffen betrachtet (inklusive) der markierten Daten. z.B. Wenn Sie ein Startdatum von 2015-03-01 00:00:00 und ein Enddatum von 2015-03-02 00:00:00 haben, ist die Span nur ein Tag.

Dies scheint mit der version 2 upgrade to using moment.js übereinstimmen. So scheint es, dass Sie entweder "23: 59: 59" zu Ihrem Enddatum hinzufügen müssen, oder eine andere Möglichkeit, das Enddatum anzugeben, z. als Dauer von zwei Tagen zum Startdatum hinzugefügt?

+9

Dies ist eine schreckliche Entscheidung, ob das der Fall ist – Eddie

+0

Können Sie sich noch die Ereignisse in der Monatsansicht Größe ändern, wenn eine Zeit, um das Event-Objekt hinzugefügt wird? Größenänderung und Ziehen und Ablegen fügen auch immer einen anderen Tag hinzu als gezeigt. Ich habe gefummelt und versucht, eine Lösung zu finden, aber ohne Erfolg. – JerryA

+0

Ich hatte/hatte dieses Problem auch. Ändern der Zeit hat nicht geholfen, ich muss tatsächlich +1 Tag bis zum Enddatum hinzufügen .. Das ist lächerlich, aber es scheint zu funktionieren. – Aurelin

5

Basierend auf der eventDataTransform function können Sie 1 Tag hinzufügen, wenn Ihre Veranstaltung allday ist. Beachten Sie, dass dies nur das Rendering beeinflusst.

eventDataTransform: function(event) {                                 
    if(event.allDay) {                                    
    event.end = moment(event.end).add(1, 'days')                             
    } 
    return event; 
}                                     
+0

Ich habe dies funktioniert, aber immer noch nicht die Größenänderung oder Verschieben von Ereignissen in der Monatsansicht. (d. h., wenn der Kalender die Ereignisse zum ersten Mal richtig rendert, aber wenn Ereignisse verschoben oder in der Größe verändert werden, wird das Enddatum auf einen Tag länger eingestellt, als es visuell dargestellt wird). – JerryA