2017-01-11 2 views
0

У меня возникли проблемы с пониманием того, как рассчитать общую продолжительность событий в день в режиме WEEK, а не в месяц.fullcalendar: общая продолжительность всех событий в день в WEEK VIEW

Итак, у меня есть вид с понедельника по пятницу, и пусть понедельник имеет 3 события, а каждый - 10 минут. Я хочу вычислить его, чтобы добавить до 30 баллов, а затем показать, что 30 в понедельник в заголовке.

Тогда в пятницу есть 2 события по 20 минут каждый. Мне нужно увидеть 40 минут рядом с пятницей.

В настоящее время это то, что я делаю для каждого события:

var duration = moment.duration(event.end.diff(event.start)); 
       var mins = duration.asMinutes(); 
       element.find('.fc-title').append("<span class ='timeduration'>" + " " + mins + " min." + "</span>"); 

Пожалуйста, помогите мне рассчитать сумму за каждый день недели.

+0

Вы сохраняете событие где-то или это должно быть как окно предварительного просмотра, где ничего не сохраняется? – lifejuggler

+0

Я ничего не спасаю. В приведенном выше коде отображается количество минут для каждого события в зависимости от даты начала начала. Я не знаю, как реализовать общее количество в день. – coder

ответ

0

Может быть, это будет делать:

var durations = []; 

    $('#calendar').fullCalendar({ 
     defaultDate: '2017-01-01', 
     defaultView: 'agendaWeek', 
     events: [{ 
     title: 'event 1', 
     start: '2017-01-05 11:00', 
     end: '2017-01-05 13:00', 
     }, { 
     title: 'event 2', 
     start: '2017-01-05 08:00', 
     end: '2017-01-05 09:00' 
     }, { 
     title: 'event 3', 
     start: '2017-01-06 11:00', 
     end: '2017-01-06 13:00', 
     }, { 
     title: 'event 4', 
     start: '2017-01-06 08:00', 
     end: '2017-01-06 10:00' 
     }], 
     dayRender: function(date, cell) { 
     durations[date.format('YYYY-MM-DD')] = 0; 
     }, 
     eventAfterAllRender: function(view) { 
     $('#calendar').fullCalendar('clientEvents', function(event) { 
      var duration = moment.duration(event.end.diff(event.start)); 
      var mins = duration.asMinutes(); 
      var dateTotal = durations[event.start.format('YYYY-MM-DD')]; 
      durations[event.start.format('YYYY-MM-DD')] = dateTotal + mins; 
     }); 

     for (var key in durations) { 
      $('th.fc-day-header[data-date="' + key + '"]').append('&nbsp;<span>duration: ' + durations[key] + '</span>'); 
     } 
     } 
    }); 

Проверьте fiddle

С наилучшими пожеланиями!
Krzysztof

+0

Отлично! Именно то, что мне нужно. СПАСИБО! Dziękuję – coder

+0

Рад, что я мог помочь! Proszę bardzo! –

Смежные вопросы