2017-09-18 27 views
0

我正在编写Ionic 3项目,我使用FullCalendar插件来显示日历UI。 当我尝试在日历上更改一天的背景时,页面模块中的代码出现问题。 我已经使用FullCalendar的dayRender函数。date.getDate()不是函数。 (在'date.getDate()','date.getDate()'是未定义的)FullCalendar in Ionic 3

$('#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库中定义的Date对象。

任何解决方案?

ps:对不起,我的英语不好。

+0

“数据” =“日”,......还有...... *“的getData” =“GETDATE” –

+0

对不起,我想说的!日期对象 – Lamoichenzio

+0

但是你的错误是**数据**。 ** getData **不是函数 –

回答

1

dayRender回调在https://fullcalendar.io/docs/display/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/的日期,当下的细节构造函数可以解析,并且http://momentjs.com/docs/#/query/is-same/有关日期比较方法的详细信息。

这里你可以看到上面的工作示例:http://jsfiddle.net/sbxpv25p/22/

+1

另外,我们可以补充说,你可以在没有任何参数的情况下通过调用“moment”来“生成”一个真实的今天的日期。 –

+0

我已经读过日期是一个momentJs对象作为说文档,但在我的IDE为函数日呈现它说: (属性)dayRender:(日期:日期,单元格:HTMLTableDataCellElement)。 其实如果我使用你的代码,date.isSame(今天)不工作,因为日期不是一个momentJS对象(至少根据IDE)。 – Lamoichenzio

+0

不幸的是你的IDE正在讨论它的背后:-)。产品本身的文档将比您的IDE试图猜测或推断的文档更准确。我也刚刚注意到我写了一些小错误,现在我已经在上面的答案中纠正了。你也可以在这里看到我的代码的一个工作示例:http://jsfiddle.net/sbxpv25p/21/ – ADyson

相关问题