几个月内重复不一致

时间:2010-08-05 12:34:44

标签: javascript jquery fullcalendar

通过查看我在下面提供的代码,有谁知道为什么重复在每个月都不一致?我的意思是,第一个月显示到结束,重复工作正常,然后到月末,重复没有正确显示。只需单击预览即可看到以下代码的输出here on jsbin

 (function() {
    function MyEvents(start,end, callback) {
      var events = [];
      // Setup the meeting on the this weeks "monday"
      var meeting = new Date(start.getFullYear(), 
                             start.getMonth(), 
                             start.getDate(),
                             4, 30, 00);

      var endmeeting = new Date(2010, 07, 06, 8, 00, 00);

      meeting.setDate((meeting.getDate() - meeting.getDay()) + 1);

      var newEnd = new Date(end);
      var maxEnd = new Date((newEnd.getFullYear() + 1), newEnd.getMonth(), newEnd.getDate());

      //==========Calculate Repeat===========//
      var oneDay = 1000 * 60 * 60 * 24;
      var date1 = meeting.getTime();
      var date2 = endmeeting.getTime();
      var difference = Math.abs(date1 - date2);
      var days = Math.abs(difference / oneDay);

      while (meeting <= maxEnd) {
            var endDate = new Date();
            endDate.setDate(meeting.getDate() + days);
            events.push({
                id: 2,
                title: "Monday Meeting",
                start: new Date(meeting.valueOf()),
                end: endDate,
                allDay: false
            });

            // increase by one week
            meeting.setDate(meeting.getDate() + 7);
        }

      callback(events);
    }
    $('#calendar').fullCalendar({
          header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
          },
          events: MyEvents
        });
    });

修改 - 我知道为什么会这样。如果我发出“警告(endDate);”在“meeting.setDate(meeting.getDate()+ 7);”之前,我确实看到它给了我正确的“结束”日期。这里的问题是,一旦它到达九月和即将到来的月份,月份将始终保持在“八月”,但日期是正确的日期。例如,一旦它到达“9月10日”,这将再次是“8月10日”,“9月17日”将是“8月17日”。日期变化但不是月份。有人在想吗?

1 个答案:

答案 0 :(得分:0)

更新 - here您可以看到更新以及我为使每个月的重复保持一致所做的工作。只需单击预览。我希望这也能帮助那些坚持这个问题的人。