0

当用户在 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;

此外,“红色”插槽适用于这个“被封锁”的日子,但是当我点击日历上的另一天时,它也会变成红色。这里有什么问题?请帮忙!非常感谢您的帮助!

4

1 回答 1

0

有几件事:

  1. 日期中的月份是从 0 开始的。这意味着myDate.setFullYear(2012,09,02)将日期设置为 2012 年 10 月 2 日。我认为您试图将其设置为 9 月 2 日 - 在这种情况下,您需要使用myDate.setFullYear(2012,08,02).
  2. 当您这样做时new Date(),它会使用当前日期和时间创建一个日期。当你这样做时,date.setFullYear()它只会覆盖日期 - 而不是时间。这可能会导致比较问题。我一直习惯于new Date(2012, 9, 2, 0, 0, 0, 0)简单地这样做。
  3. 最后,我认为这是导致您问题的原因,==操作员不适用于日期。您将需要显式使用一个valueOf函数来进行比较getTime()。有关更多详细信息,请参阅此答案

我为你总结了所有这些 - http://jsfiddle.net/100thGear/sStbC/

让我知道这是否有帮助!

于 2012-08-27T17:21:50.743 回答