5

我正在编写一个 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:对不起我的英语不好。

4

1 回答 1

6

https://fullcalendar.io/docs/v3/dayRenderdayRender上的回调文档说

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/了解 moment 构造函数可以解析的日期的详细信息,以及http://momentjs.com/docs /#/query/is-same/获取日期比较方法的详细信息。

您可以在此处查看上述示例:http: //jsfiddle.net/sbxpv25p/22/

于 2017-09-19T08:48:33.793 回答