我正在使用完整日历并希望在特定日期范围内添加颜色,所以当我们点击月视图标签时,我已经取出了开始日期和结束日期。
但是当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++;
}
}
请帮忙。
答案 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");
}
},