我在Ionic 3项目上编码,我使用FullCalendar插件显示日历ui。 当我尝试在日历上更改一天的背景时,我在页面模块中遇到此代码的问题。 我使用过FullCalendar的dayRender功能。
$('#calendar').fullCalendar({
dayRender: function (date, cell) {
var today = new Date('2017-09-11T00:40Z')
if (date.getDate() == today.getDate()) {
this.cell.css("background-color", "red");
}
},
});
我在输出中遇到此运行时错误:
date.getDate()不是函数。 (在' date.getDate()'中, ' date.getDate()'未定义)Ionic 3中的FullCalendar
所以我不明白为什么,因为date是一个已在FullCalendar库中定义的Date对象。
任何解决方案?
ps:抱歉我的英语不好。
答案 0 :(得分:1)
https://fullcalendar.io/docs/display/dayRender/ dayRender
回调的文档说
date
是给定日期的时刻。
因此代码中的date
是一个momentJS对象,而不是Date对象。这就是getDate方法不存在的原因。您最好将today
创建为momentJS对象,然后您可以直接比较它们:
$('#calendar').fullCalendar({
dayRender: function (date, cell) {
var today = moment('2017-09-11T00:00Z');
if (date.isSame(today, "day")) {
cell.css("background-color", "red");
}
},
//...
});
有关我编写的代码的更多详细信息,请参阅http://momentjs.com/docs/#/parsing/string/以获取当前构造函数可以解析的日期的详细信息,并http://momentjs.com/docs/#/query/is-same/了解日期比较方法的详细信息。
您可以在此处查看上述工作示例:http://jsfiddle.net/sbxpv25p/22/