2015-05-25 6 views
5

Ho provato questa implementazione Full Calendar Implementation.Calendario completo Intervallo di tempo Dovrebbe essere 1 ora e iniziare da 6:30

$("#available_classes_calendar").fullCalendar({ 
     header: { 
      left : 'prev,next', 
      center : 'title' 
      }, 
     defaultView: 'agendaWeek', 
     views:{ 
      agenda:{ 
       allDaySlot: false, 
       minTime: "06:30:00", 
       maxTime: "24:00:00", 
       slotDuration: "00:60:00" 
      } 
     } 
    }); 

In questa colonna per tutto il giorno dovrebbe iniziare a partire dalle 6:30 e lo slot di intervallo dovrebbe essere di 1 ora.

Quindi tutto-giorni colonna dovrebbe essere simile:

6:30 del mattino 07:30 08:30. . . 11:30 pm

Ho provato molte soluzioni ma non sono riuscito a raggiungere questo obiettivo.

Per favore fatemi sapere se sono necessarie altre informazioni per risolvere questo problema.

Grazie Screenshot from @lucasnadalutti fiddle

risposta

3

Il tuo problema è il luogo in cui hai messo le tue opzioni. Dovrebbe essere

$("#available_classes_calendar").fullCalendar({ 
    header: { 
     left : 'prev,next', 
     center : 'title' 
     }, 
    defaultView: 'agendaWeek', 
    allDaySlot: false, 
    minTime: "06:30:00", 
    maxTime: "24:00:00", 
    slotDuration: "06:00:01" 
}); 

Per quanto riguarda la visualizzazione di 06:30, 07:30 e così via, sull'asse verticale, è necessario impostare il slotDuration: "06:30:01". Dai uno sguardo allo this jsfiddle.

La cosa più importante da notare è il 01 secondo sullo slotDuration. Senza questo, non sarai in grado di visualizzare mezz'ora.


spiegazione sul motivo per cui è necessario il "+01" seconda:

FullCalendar supporta assi con ore e mezza o quello che volete, ma è necessario fare questa cosa eccentrico. La ragione di questo è nel codice sorgente stessa (Visualizza sorgente di FullCalendar 2.3.1), dalla linea 5714-5719:

((!slotNormal || !minutes) ? // if irregular slot duration, or on the hour, then display the time 
    '<span>' + // for matchCellWidths 
     htmlEscape(slotDate.format(this.axisFormat)) + 
    '</span>' : 
    '' 

Ora, $slotNormal è definito sulla linea 5701 ed è:

var slotNormal = this.slotDuration.asMinutes() % 15 === 0; 

Quindi, se hai 30 minuti di slot, la condizione sarà falsa e FullCalendar non visualizzerà l'ora. Questo argomento è trattato in modo approfondito nel numero this answer.

Un'osservazione aggiuntiva: stai utilizzando FullCalendar v1.5.4 che è molto vecchio e ti consiglio di eseguire l'aggiornamento. Se esegui l'aggiornamento, ricorda che FullCalendar si basa ora su .

+0

Grazie per la risposta, dalla tua risposta posso capire che ci sono alcune limitazioni nell'uso di fullcalendar. Non riesco ad ottenere l'output esatto di cui ho bisogno, anche se durante la ricerca ho ricevuto una patch (https://code.google.com/p/fullcalendar/issues/detail?id=951) per il fullcalendar attraverso il quale immagino che possiamo raggiungere l'output desiderato, ma quella patch era per 1.5.1 e in realtà sto usando l'ultimo FullCalendar con moment.js, ma ho aggiornato qualche vecchio violino per spiegare il mio problema. –

+0

@PardeepDhingra è possibile ottenere l'output desiderato. Hai visto [il jsfiddle] (http://jsfiddle.net/milz/y9mt92et/1/)? Per qualche motivo Arshaw ha supposto che il tempo non sarebbe stato visualizzato quando 'slotDuration% 15 === 0', e quindi è necessario impostare' slotDuration: "00:30:01" '. –

+0

Ho visto il violino che mi serve una durata di 1 ora. In questo caso mostrerà 6: 30..7: 00..7: 30. Ma ho bisogno di 6: 30..7: 30..e così via –

3

Basta tirare fuori le opzioni che si mette dentro views.

Questo è il tuo modified working fiddle.

+1

questo violino non mostra l'uscita desiderata le fasce orarie sono 7:00 am ... 8:00 e così via. –

Problemi correlati