2016-12-05 5 views
0

Ich verwende FullCalendar.js, um Aufgaben anzuzeigen, die von Benutzern eingegeben wurden. Dafür habe ich ein Pop-Up erstellt, um Event-Grunddetails und Details zur Wiederholung zu erhalten. Ein Ereignis kann täglich, wöchentlich, 28 Tage, 31 Tage, 30 Tage dauern. Ich konnte Ereignisse für tägliche und wöchentliche Fälle darstellen, aber ich kann nicht darüber nachdenken, wie Ereignisse mit 28/30/31 Tagen zwischen ihnen dargestellt werden.Hinzufügen von Ereignissen im 28-Tage-Zyklus in FullCalendar.js

für Kalender Mein Code ist wie folgt:

$('#calendar').fullCalendar({ 
    //height: 420, 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    defaultDate: moment(), 
    defaultView: 'month', 
    eventRender: function (event, element, view) { 
     console.log(event.start.format()); 
     if (event.ranges == undefined) 
      return true; 
     else { 
      return (event.ranges.filter(function (range) { 
       if (range.end == undefined)//Check if only start is given 
        return (event.end.isAfter(range.start)) 
       else 
        return (event.start.isBefore(range.end) &&//If both start and end date is given 
          event.end.isAfter(range.start)); 
      }).length) > 0; 
     } 
    }, 
    events: function (start, end, timezone, callback) { 
     var events = getEvents(start, end); //This should be a JSON request 
     callback(events); 
    }, 
    eventClick: function (calEvent, jsEvent, view) { 
     alert('Event: ' + calEvent.title); 
     //$('#btnOpenPopUp').click(); 
    } 
}); 

und json für Veranstaltungen wie so ist:

 { 
    title: "My repeating event", 
    id: 1, 
    start: '10:00', // a start time (10am in this example) 
    end: '14:00', // an end time (6pm in this example) 
    dow: [1, 2, 3, 4, 5], // Repeat monday and thursday 
    ranges: [{ 
     start: moment().startOf('month').subtract(1, 'month'), 
     end: moment().startOf('month').subtract(1, 'month').add(7, 'd'), 
    }, { 
     start: moment('2016-12-15', 'YYYY-MM-DD'), //all of february 
     //end: moment('2016-11-01', 'YYYY-MM-DD').endOf('month'), 
    } 

Ich brauche Hilfe Aufgaben zu machen, die nach jeweils 28 Tagen auftreten. Irgendwelche Vorschläge?

Antwort

2

Vielleicht könnten Sie late.js project (http://bunkat.github.io/later/index.html) verwenden, um das Auftreten der Aufgaben zu berechnen. In diesem Codebeispiel wird das alle Vorkommen zwischen 2 Terminen für jeweils 28 Tage produzieren:

<html> 
<head> 
<script src="moment.js" type="text/javascript"></script> 
<script src="moment-recur-min.js" type="text/javascript"></script> 
<script type="text/javascript"> 

var recurrence = moment().recur("2016-12-06", "2017-12-06").every(28).days(); 
var allDates = recurrence.all("L"); 
console.log(allDates); 
</script> 
</head> 
<body> 

test 
</body> 
</html> 

Mit freundlichen Grüßen
Krzysztof

Verwandte Themen