【问题标题】:Add color to a date range in month view in FullCalendar在 FullCalendar 的月视图中为日期范围添加颜色
【发布时间】:2019-05-22 20:00:25
【问题描述】:

我正在使用完整日历,并且想为某个日期范围添加颜色,所以当我们单击月视图选项卡时,我已经取出了开始日期和结束日期。

但是在循环中,只有一次进入循环,然后我得到这个错误。主要代码在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++;
        }


            }

请帮忙。

【问题讨论】:

    标签: javascript fullcalendar


    【解决方案1】:

    不确定你想用这段代码实现什么,但问题是$.fullCalendar.formatDate(start_day,"yyyy-MM-dd"); start_day 应该是一个日期对象。

    这应该可以解决它:

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

    【讨论】:

    • 谢谢你。它是这样工作的。但是我无法理解你的日期对象?
    • 因为这是 'formatDate' 的工作方式... :)
    【解决方案2】:

    在完整日历 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");
                        }
                    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多