在FullCalendar中的月视图中为日期范围添加颜色

时间:2014-04-12 05:17:40

标签: javascript fullcalendar

我正在使用完整日历并希望在特定日期范围内添加颜色,所以当我们点击月视图标签时,我已经取出了开始日期和结束日期。

但是当In循环时,只有它进入循环,然后我才会收到此错误。主要代码在viewDisplay中

TypeError:t.getFullYear不是函数

这是我尝试过的。

    var calendar = $('#calendar').fullCalendar({

    editable: true,
   header: {
   left: 'prev,next today',
   center: 'title',
   right: 'month,agendaWeek,agendaDay,year'
  },   



   events: "cal_events.php",
 viewDisplay: function(view) {

            if (view.name == 'agendaDay') { 
                    //alert(view.name);

            }

            if (view.name == 'month') { 


         var start_day =view.start

        var end_day = view.end

     count = 1;   

        while(count<7)
        {

        var start_day =$.fullCalendar.formatDate(start_day,"yyyy-MM-dd");

        console.log(start_day);
        console.log(count);

         $("[data-date="+start_day+"]").css("background-color", "red");


        start_day = start_day.split('-');
        start_day[2] = parseInt(start_day[2])+2;
        if(start_day[2]<10) {
            start_day[2] = "0"+start_day[2];
        }
        start_day = start_day.join('-');

        count++;
        }


            }

请帮忙。

2 个答案:

答案 0 :(得分:0)

不确定您要使用此代码尝试实现的目标,但问题是在$.fullCalendar.formatDate(start_day,"yyyy-MM-dd");开始日期应该是日期对象。

这应该解决它:

start_day = $.fullCalendar.formatDate(new Date(start_day),"yyyy-MM-dd");

答案 1 :(得分:0)

在完整日历3和4中,您可以执行以下操作:

                dayRender: function (date, cell) {
                    // colour the date range (DueDate - 30 days)
                    let cellDate = moment(date._d).format("Y-MM-DD");
                    //get the due date from the form / you can also  get it either as todays date  i.e. let dueDateEnd = date._d;
                    let dueDateEnd = $("#calendar").data("duedate");
                    console.log("____ original due Date_____" + dueDateEnd);

                    let dueDateStart = moment($("#calendar").data("duedate"), 'YYYY-MM-DD').subtract(30, 'days').format('YYYY-MM-DD');
                    console.log("____create DueDate start_____" + dueDateStart);

                    if (moment(cellDate).isBetween(dueDateStart, dueDateEnd)) {
                        cell.css("background-color", "green");
                    }
                },