完整日历JS从工作日结束到下一个工作日开始的时间

时间:2012-09-06 15:40:12

标签: javascript jquery fullcalendar fullcalendar-3

我在AgendaWeek视图中使用Full Calendar JS,我将可见时间限制为上午8点至下午5点,而不是默认显示的每天12小时,但是当我尝试扩展事件的时间并将其拖过时在可见时间结束时,它不会换到第二天。相反,它一直持续到包裹前的午夜。

有一种简单的方法可以防止这种情况发生吗?基本上我只希望它在一周的上午8点到下午5点之间显示事件。

这是我的代码:

$('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  allDaySlot: false,
  minTime: '8:00am',
  maxTime: '6:00pm',
  weekends: false,
  header: {
    left: 'prev,next',
    center: 'title',
    right: ''
  },
  editable: true,
  droppable: true, // this allows things to be dropped onto the calendar !!!
  events: "{{URL::to('schedule/fetch')}}"
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.0/fullcalendar.min.js"></script>

我的事件以UTC格式存储在数据库中,只有开始时间和持续时间。为了得到结束时间,我只需添加开始和持续时间,然后再通过AJAX传回。我假设我需要让完整日历只是添加到持续时间,如果它溢出到第二天但我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

我在选择完整日历中解决了以下解决方案:

select: function(start, end) {

     if(start.format() > minTime && start.format() <  maxTime){

       eventId++;               
       var event = {
          id : eventId,
          start:  moment(start.format()),
          end:   moment(end.format())
       };
       $('#calendar').fullCalendar('renderEvent', event, true); 
    }

}