2017-04-24 2 views
0

Ich möchte wissen, was ist der erste Tag und der letzte Tag des Hauptmonats gesehen im Vollkalender.Vollkalender: Wie bekomme ich den ersten und letzten Tag des relevanten gesehenen Monats (und nicht die Tage der letzten Monat)

hier ist die entsprechende Monatsansicht:

enter image description here

 events: function (start, end, timezone, callback) { //custom events function to be called every time the view changes 
      alert (start.format()); 
      alert (end.format()); 
    }, 

, wenn ich diesen Code auf diesem Monat laufe (April 2017), erhalte ich: start.format() = 2017-03- = 26 end.format() 2017.05.07 und ich möchte die folgenden Daten erhalten: starten: 2017.04.01 Ende: 2017-04-30

ist es eine Möglichkeit für ich um diese Daten in der Event-Funktion zu bekommen?

vielen Dank

ps

i die „showNonCurrentDates: false“ verwenden möchte nicht Option

Antwort

2

Es gibt keinen direkten Weg, diesen Wert über die „Ereignisse“ Rückruf zu bekommen, aber Sie können Verwenden Sie eine kludgy-Problemumgehung:

Der ViewRender-Rückruf ermöglicht Ihnen den Zugriff auf das Objekt "view" der aktuellen Ansicht, das die Eigenschaften intervalStart und intervalEnd enthält (siehe https://fullcalendar.io/docs/views/View_Object/), die sich auf das Intervall beziehen, das die Ansicht darzustellen versucht. In einer Monatsansicht sind dies der Beginn und das Ende des Monats. Wenn Sie diese in Variablen mit einem höheren Gültigkeitsbereich als dem Ihres Kalenders erfassen, können Sie diese nach Bedarf in den callbacks eventsAllRender und/oder eventsAfterAllRender erneut verwenden.

var intervalStart, intervalEnd; //variables with higher scope level 

$('#calendar').fullCalendar({ 
    //...your options here... 
    viewRender: function (view, element) 
    { 
     intervalStart = view.intervalStart; 
     intervalEnd = view.intervalEnd; 
    }, 
    events: function(start, end, timezone, callback) { 
     console.log(intervalStart.format("YYYY-MM-DD")); 
     console.log(intervalEnd.format("YYYY-MM-DD")); 
     //...etc 
    } 
}); 

Beachten Sie, dass intervalEnd ist exklusiven, so dass, wenn der Monat April, wird die intervalEnd als 1. Mai gegeben.

Nachdem demonstriert, dass, obwohl es scheint, ordentlicher zu sein, nur die eingebaute showNonCurrentDates:false Option, wie in Ihrer früheren Frage zu verwenden.

+0

Dank wieder gezeigt werden. hast du den Vollkalender gebaut? :) – codingnighter2000

+0

Nein. Ich benutze es nur ein bisschen, und ich bin vertraut mit der Dokumentation. Dieser Typ hat es geschrieben, glaube ich. http://Stackoverflow.com/users/96342/arshaw, aber es sieht nicht so aus, als ob er in letzter Zeit so aktiv ist. – ADyson

+0

P.S. Können Sie Antworten "annehmen" und auch abstimmen? Ich bemerke, dass du es bei deinen vorherigen Fragen nie getan hast. Siehe http://stackoverflow.com/help/someone-answers für Informationen darüber, wie es geht (klicken Sie im Wesentlichen auf das Häkchen neben der Antwort!) – ADyson

0

Fügen Sie diese Einstellung hinzu showNonCurrentDates: false,. Mit dieser Einstellung werden Daten, die nicht zum aktuellen Monat gehören, nicht angezeigt. Von Ihnen Ereignisrückrufe am ersten Tag des laufenden Monats und dem ersten Tag des nächsten Monats wird als start und end bzw.

$('#calendarLoansByRequestDate').fullCalendar({ 
      // Other settings 
      showNonCurrentDates: false, 
      events: function (start, end, timezone, callback) { //custom events function to be called every time the view changes 
       alert(start.format()); 
       alert(end.format()); 
      } 
}); 
Verwandte Themen