2010-08-05 4 views
-1

En regardant le code que j'ai fourni ci-dessous, quelqu'un sait-il pourquoi la répétition n'est pas cohérente tout au long de chaque mois? Ce que je veux dire par là est pour le premier mois qui s'affiche jusqu'à la fin, la répétition fonctionne bien, puis vers la fin du mois, la répétition ne s'affiche pas correctement. La sortie du code ci-dessous peut être vu here on jsbin il suffit de cliquer sur Aperçu.Répétition non cohérente à travers les mois

(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 
     }); 
    }); 

Modifier - Je vois ce qui est mal pourquoi cela. Si je mets un "alert (endDate);" avant "meeting.setDate (meeting.getDate() + 7);", je vois qu'il me donne la bonne date "end". Le problème ici est qu'une fois qu'il arrive à Septembre et mois entrants, le mois restera toujours sur "Août", mais les dates sont les bonnes dates pour. Ainsi, par exemple, une fois arrivé au «10 septembre», il s'agira à nouveau du «10 août», le «17 septembre» sera le «17 août». Les dates changent mais pas le mois. Des gens d'idée?

+1

Vous devriez expliquer ce que vous voyez. (aka ça fonctionne bien pour le premier mois) Ainsi que d'un mois de pont. Mais après tout ça va à la merde. – Nix

+0

Au moins, vous pouvez poster votre solution, puis approuver votre réponse – Gutzofter

Répondre

0

Mise à jour - here vous pouvez voir la mise à jour et ce que j'ai fait pour rendre la répétition cohérente tout au long de chaque mois. Il suffit de cliquer sur l'aperçu. J'espère que cela aidera aussi ceux qui sont bloqués sur cette question.

Questions connexes