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

时间:2017-09-18 12:30:57

标签: javascript cordova ionic-framework fullcalendar getdate

我在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:抱歉我的英语不好。

1 个答案:

答案 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/