fullcalendar:WEEK VIEW中每天所有事件的总持续时间

时间:2017-01-11 21:33:17

标签: javascript fullcalendar momentjs

我无法理解如何在WEEK视图而非月视图中计算每天事件的总持续时间。

所以我对星期一到星期五都有看法,假设星期一有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>");

请帮我计算一周中每天的总数。

1 个答案:

答案 0 :(得分: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