Fullcalendar显示每天的事件数

时间:2013-12-03 11:09:40

标签: javascript php jquery events fullcalendar

我使用的是FullCalendar,我想在每天的所有视图中显示每天的事件数。

示例:

<div class="fc-day-number">1</div>

更改为:

<div class="fc-day-count">X</div>
<div class="fc-day-number">1</div>

请以屏幕截图为例: link

提前致谢

3 个答案:

答案 0 :(得分:3)

我希望这有助于某些人,但不知道这是否是您正在寻找的确切答案。

要获取一天发生的事件数,您可以使用以下代码:

$('#calendar').fullCalendar( 'clientEvents', function(eventObj){
    if (eventObj.start.isSame('2014-11-21')) {
        return true;
    } else {
        return false;
    }
}).length;

根据fullcalendar文档,您可以使用过滤器函数clientEvents搜索事件。

函数中的if语句使用fullcalendar 2.0

中包含的moment.js来比较日期

答案 1 :(得分:0)

月视图中的示例 EventsPerDay变量提供计数

 eventRender: function (event, element, view) { 
 $(element).each(function () { $(this).addClass('dateClass-' + event.start.getDate().toString()); $(this).attr('date-num', event.start.getDate().toString()); });
                   if (view.name == "month") {
                       // $('.shifts,.tasks,.shiftOut,.shiftIn').hide();
                       var CellDates = [];
                       var EventDates = [];
                       var EventCount = 0, i = 0;

                       $('.fc-view-month').find('.fc-day-number').each(function () {
                           CellDates[i] = $(this).text();
                           //                           alert( $(this).text());
                           i++;
                       });

                       for (j = 0; j < CellDates.length; j++) {

                           EventsPerDay = $(".fc-view-month>div>.dateClass-" + CellDates[j]).length;}}

答案 2 :(得分:0)

我在名为

的方法中向fullcalendar.js添加了一行

function fetchEventSource(source,fetchID)

    function fetchEventSource(source, fetchID) {
    _fetchEventSource(source, function(events) {
        if (fetchID == currentFetchID) {
            if (events) {

                if (options.eventDataTransform) {
                    events = $.map(events, options.eventDataTransform);
                }
                if (source.eventDataTransform) {
                    events = $.map(events, source.eventDataTransform);
                }
                // TODO: this technique is not ideal for static array event sources.
                //  For arrays, we'll want to process all events right in the beginning, then never again.

                for (var i=0; i<events.length; i++) {
                    events[i].source = source;
                    normalizeEvent(events[i]);
                }
                cache = cache.concat(events);
            }
            pendingSourceCnt--;
            if (!pendingSourceCnt) {
                reportEvents(cache);
            }
        }

        // add this next line here to dump the running count
        $("#someElement").html("There are " + cache.length + " events scheduled for this view");
    });
}

这具有利用fullcalendar已经在做什么的净效果。然后,您可以在数据库中保存额外的网络调用。