Повторите не соответствует в течение месяцев - PullRequest
0 голосов
/ 05 августа 2010

Глядя на код, который я предоставил ниже, кто-нибудь знает, почему повторение не является последовательным в течение каждого месяца? Под этим я подразумеваю первый месяц, который отображается до конца, повтор работает нормально, а затем к концу месяца повтор не отображается правильно. Вывод приведенного ниже кода можно увидеть здесь, на 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
        });
    });

Редактировать - Я вижу, что не так, почему это. Если я поставлю «alert (endDate);» перед "meeting.setDate (meeting.getDate () + 7);" я вижу, что он дает мне правильную "конечную" дату. Проблема здесь в том, что как только он дойдет до сентября и последующих месяцев, месяц всегда останется «августом», но даты являются правильными датами. Так, например, когда он достигнет «10 сентября», это снова будет «10 августа», «17 сентября» будет «17 августа». Даты меняются но не месяц. Есть идеи, люди?

1 Ответ

0 голосов
/ 09 августа 2010

Обновление - здесь вы можете увидеть обновление и то, что я сделал, чтобы повторение было последовательным в течение каждого месяца.Просто нажмите на превью.Я надеюсь, что это поможет тем, кто застрял в этом вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...