针对特定日期的fullcalendar中的DayClick事件警报

时间:2012-08-27 16:48:25

标签: javascript fullcalendar

当用户在Fullcalendar dayClick事件中点击月视图中的日期插槽时,我想要发出警告,说明此特定日期不可用,例如,劳动节假期。

我写了这段代码,但它没有用,我需要有人帮我理解这里有什么问题:

    dayClick: function (date, allDay, jsEvent, view) {   
    var myDate=new Date();
    myDate.setFullYear(2012,09,02);

    if (date == myDate){
        alert('Labor Day Weekend. No reservations available'); 
        $(this).css('background-color', 'red');
        return false;

此外,“红色”插槽适用于此“阻止”日,但是当我在日历上点击另一天时,它也会变为红色。这有什么不对?请帮忙! 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

有几件事:

  1. 日期中的月份是从0开始的。这意味着myDate.setFullYear(2012,09,02)将日期设置为2012年10月2日。我认为您试图将其设置为9月02日 - 在这种情况下,您需要使用myDate.setFullYear(2012,08,02)
  2. 执行new Date()时,会创建一个包含当前日期和时间的日期。当你执行date.setFullYear()时,它只会覆盖日期 - 而不是时间。这可能会导致比较问题。我总是使用new Date(2012, 9, 2, 0, 0, 0, 0)来解决这个问题。
  3. 最后,我认为这是导致问题的原因,==运算符不适用于日期。您需要明确使用valueOf函数进行比较 - 例如getTime()。有关详细信息,请参阅this answer
  4. 我把所有这些总结为你 - http://jsfiddle.net/100thGear/sStbC/

    请告诉我这是否有帮助!