date.getDate() 不是函数。 (在 'date.getDate()' 中,'date.getDate()' 未定义)Ionic 3 中的 FullCalendar

date.getDate() is not a function. (In 'date.getDate()', 'date.getDate()' is undefined) FullCalendar in Ionic 3

我正在 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() is not a function. (In 'date.getDate()', 'date.getDate()' is undefined) FullCalendar in Ionic 3

所以我不明白为什么,因为日期是一个已经在 FullCalendar 库中定义的日期对象。

有什么解决办法吗?

ps:抱歉我的英语不好。

dayRender 回调的文档 https://fullcalendar.io/docs/v3/dayRender

date is the Moment for the given day.

所以你的代码中的 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/ for details of dates that the moment constructor can parse, and http://momentjs.com/docs/#/query/is-same/了解日期比较方法的详细信息。

您可以在此处查看上面的工作示例:http://jsfiddle.net/sbxpv25p/22/