2010-08-05 55 views
-1

通過查看我在下面提供的代碼,有沒有人知道爲什麼重複在每個月都不一致?我的意思是,在第一個月顯示直到結束,重複工作正常,然後在本月底之前,重複顯示不正確。下面代碼的輸出可以看到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 
     }); 
    }); 

編輯 - 我看到什麼是錯的,爲什麼這一點。如果我把「alert(endDate)」;「之前「meeting.setDate(meeting.getDate()+ 7);」,我確實看到它給了我正確的「結束」日期。這裏的問題在於,一旦到了九月和即將到來的月份,該月將始終保持在「八月」,但日期是正確的日期。例如,一旦到達「9月10日」,這將再次爲「8月10日」,「9月17日」將爲「8月17日」。日期變化,但不是一個月。任何想法的人?

+1

你應該解釋你所看到的。 (又名第一個月正常工作)以及橋樑月。但在此之後,一切都變成廢話。 – Nix 2010-08-05 13:14:02

+0

至少您可以發佈您的解決方案,然後批准您的答案 – Gutzofter 2010-08-07 02:29:06

回答

0

更新 - here你可以看到更新和我做了什麼使整個月的重複一致。只需點擊預覽。我希望這能幫助那些陷入這個問題的人。