CLNDR - 如何获取今天,明天和当前月份事件列表并计算并打印该信息以分隔div

时间:2016-05-30 15:48:01

标签: javascript jquery events calendar underscore.js

您好我正在使用 CLNDR 并尝试将今天,明天和本月的活动列表和活动计数信息分成单独的div,我确实尝试过各种各样的事情,但无法找到一个更好的解决方案,任何人都可以帮助我。以下代码仅供参考。



doneRendering: function() {
                // make a moment object representing today
                var target = moment();
                var tommorow = target.add(1,'days');
                var eventsTommorow =[];

                    if(this.options.multiDayEvents) {

                        eventsTommorow = $.makeArray( $(this.options.events).filter( function() {
                            // filter the dates down to the ones that match.
                            return ( ( tommorow.isSame(this._clndrStartDateObject, 'day') || tommorow.isAfter(this._clndrStartDateObject, 'day') ) &&
                            ( tommorow.isSame(this._clndrEndDateObject, 'day') || tommorow.isBefore(this._clndrEndDateObject, 'day') ) );
                        }) );

                    } else {
                        eventsTommorow = $.makeArray( $(this.options.events).filter( function() {
                            // filter the dates down to the ones that match.
                            return this._clndrDateObject.format('YYYY-MM-DD') == dateString;
                        }) );
                    }


                    if(eventsTommorow.length) {
                        console.log(eventsTommorow.length);
                        var newNum = eventsTommorow.length < 10 ? "0" + eventsTommorow.length : eventsTommorow.length;
                        return $('.td-emp-count.tdTommorow').text(newNum);
                    }
                }
            },
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

实际上,我的问题是我无法过滤事件并将它们打印到单独的div中,我尝试了moment.js验证来获取今天的事件。但它没有按预期工作。但最后我尝试了一种简单的方法来获取今天,明天和本月的事件计数,并且它有效。但问题是如果一个反复发生的事件发生,让我们说4月24日到30日开始产假,那么我就无法计算事件数。因为我捕获CLNDR日期,startDate,endDate没有办法在事件计数之间获取。请找到代码

&#13;
&#13;
doneRendering: function() {
  // make a moment object representing today

  var _self = this;

  function todayCount() {
    var totalDate = _.filter(_self.options.events, {
      date: moment().format('YYYY-MM-DD')
    });
    var totalStartDate = _.filter(_self.options.events, {
      startDate: moment().format('YYYY-MM-DD')
    });
    var totalEndDate = _.filter(_self.options.events, {
      endDate: moment().format('YYYY-MM-DD')
    });

    var newNum = (totalDate.length + totalStartDate.length + totalEndDate.length) < 10 ? "0" + (totalDate.length + totalStartDate.length + totalEndDate.length) : (totalDate.length + totalStartDate.length + totalEndDate.length);
    return newNum;
  }




  $('.td-emp-count.tdToday').text(todayCount());



},
&#13;
&#13;
&#13;

这是一个简单的黑客,我使用underscore.js。但是这样我今天无法得到实际的数量,原因是如果一个经常性的假期发生它不能得到中间休假日作为计数

例如:

病假

startDate = 2016年4月24日

endDate = 2016年4月28日

当我将这个简单的黑客应用于此时,我只能将4月24日(星期一)作为一个计数而4月28日(星期五)作为另一个计数,但是当我试图打印星期三的休假计数时,它无法将这一天作为留下数,

我是下划线.js的新手,但我真的需要知道如何将这些变量打印到underscore.js模板中,

在模板事件计数内。

我可以通过使用_.each()方法获取今天(实际休假)计数并将其打印到白天本身就像这样

&#13;
&#13;
<% _.each(days, function(day) { %>
  <div class="<%= day.classes %>" id="<%= day.id %>">
    <div class="num"><%= day.day %></div>
    <% if (day.events.length) { %>
      <div class="eventsTitles">Leave : <strong><%= day.events.length %></strong></div>
        <% } %>
       <ul class="dayLeaveTypes">
         <% _.each(day.events, function(event) { %>
         <li title="<%= event.type %>" id="<%= event.type %>" style="color:<%= event.color %>;">&#9679;</li>
         <% }); %>
       </ul>
 </div>
<% }); %>
&#13;
&#13;
&#13;

但是我需要获得这个实际计数(仅限今天或明天的特定日期)并将它们打印到单独的div中,而不是在日历中。

这是我试图解决的整个想法。 :)