在全日历事件上重复时间



我正在尝试在某个时间使用完整的日历进行一些重复事件。例如,我希望事件发生在1-3-2016直到 1-7-2016。

这是我处理所有事件的代码。

<script type="text/javascript">
$(document).ready(function()
{
                    var events=new Array();
                var numberofevents = '<?php echo count ($info); ?>';
                    <?php 
                    foreach($info as $module => $kati) { ?>
                    var date = new Date('<?php echo $kati['ModuleSchedule_StartTtime']; ?>');
                    var day = date.getDate();
                    var month = date.getMonth();
                    var year = date.getFullYear();
                    var time = date.getHours();
                    var start_date = new Date(year, month, day, time, 0);
                    var end_date = new Date(year, month, day, time+2, 0);
                    var ranges = [{ start:"2016/03/01", end:"2016/06/01"}] //range of repeat
                    var event_name = '<?php echo $kati['ModuleSchedule_Module_Name']; ?>';
                    var event_description = '<?php echo $kati['ModuleSchedule_Semester_Name'] ?>' + '<br/>' + '<?php echo $kati['ModuleSchedule_Classroom'] ?>' + '<br/>' + '<?php echo $kati['ModuleSchedule_TeacherUserFullName'] ?>';
                    event = new Object();       
                    event.title = event_name;
                    event.start = start_date;
                    event.end = end_date;
                    event.description = event_description;
                    event.color = "blue";
                    event.dow = '<?php echo $kati['ModuleSchedule_DayOfWeek']; ?>';
                    event.ranges = ranges;
                    event.allDay = false;
                    events.push(event);
                    <?php   }
                    ?>

             $('#calendar').fullCalendar({
                 eventRender: function(event, element, view) {
            // opens events in a popup window
            element.find('.fc-title').append("<br/>" + event.description);
            element.qtip({ content: "Στοιχεία μαθήματος: " + event.title + "<br/>" + event.description});
        },
                    header: {
                        left: 'prev,next today',
                        center: 'title',
                        right: 'month,agendaWeek,agendaDay'
                    },
                    editable: true,
                    weekMode: 'liquid',
                    weekends: true,
                    theme: true,
                    selectable: true,
                    editable: false,
                    events: events
                  });
            }); 

在我采取"范围"的行上,有什么正确的方法可以在事件中添加吗?因为可以肯定的是,我在这里试图做的事情是错误的。谢谢你的时间!

将其添加到事件对象中

event.dowend = new Date('2016/7/1');

在 eventRender 上检查日期是否已达到 dowend,如果为 true,则返回 false,因此日历不会创建事件

eventRender: function(event, element, view) {
        // opens events in a popup window
        element.find('.fc-title').append("<br/>" + event.description);
        element.qtip({ content: "Στοιχεία μαθήματος: " + event.title + "<br/>" + event.description});
        var theDate = event.start
        var endDate = event.dowend;
        if (theDate >= endDate) {
                return false;
           }                                                            
    }

我扩展了解决方案并创建了一个 jsfiddle [

$(document).ready(function() {
  $('#scheduler').fullCalendar({
  
        eventRender: function(event, element, view) {
        var theDate = event.start
        var endDate = event.dowend;
				var startDate = event.dowstart;
        
        if (theDate >= endDate) {
                return false;
        }
        if (theDate <= startDate) {
          return false;
        }
        
        },
        defaultView: 'month',
        header: {
        left: 'prev,next today',
  			center: 'title',
  			right: 'month,agendaWeek,agendaDay'
        },
        defaultDate: '2016-01-15T16:00:00',
       events: [{
       			id: 1,
            title:"Front End",
            start:'10:00', 
            end:  '13:00', 
            dow: [0, 1, 2, 3, 4, 5, 6],
            dowstart: new Date('2016/01/03'),
            dowend: new Date('2016/01/17')
       }
    ]
  })
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.css" rel="stylesheet"/>
</script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script>
<div id='scheduler'></div>

]1 向您展示仅在两个日期之间显示每日并发事件的特定解决方案。

该解决方案依赖于为事件对象添加两个自定义日期参数:

dowstart: new Date('2016/01/03'),
dowend: new Date('2016/01/17')

然后将条件添加到 eventRender 函数中:

eventRender: function(event, element, view) {
    var theDate = event.start
    var endDate = event.dowend;
            var startDate = event.dowstart;
    if (theDate >= endDate) {
            return false;
    }
    if (theDate <= startDate) {
      return false;
    }
    }

您还可以使用范围。请检查下面的代码

$(document).ready(function() {
 $('#calendar').fullCalendar({
  defaultDate: moment(),
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
  },
  defaultView: 'month',
  events: [{
    title: "My repeating event",
    start: '10:00',
    end: '14:00',
    dow: [1, 2, 3, 4],
    ranges: [{
      start: moment().startOf('week'), //next two weeks
      end: moment().endOf('week').add(7, 'd'),
    }, {
      start: moment('2018-06-15', 'YYYY-MM-DD'), //all of february
      end: moment('2018-06-15', 'YYYY-MM-DD').endOf('month'),
    }, ],
  }],
  eventRender: function(event) {
    return (event.ranges.filter(function(range) {
      return (event.start.isBefore(range.end) &&
        event.end.isAfter(range.start));
    }).length) > 0;
  },
}) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.3.0/fullcalendar.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.3.0/fullcalendar.min.js"></script>
<div id='calendar'></div>

相关内容

  • 没有找到相关文章

最新更新