FullCalendar日历开始日期

时间:2015-03-25 03:15:29

标签: jquery fullcalendar

我正在尝试在我的日历上禁用前几天,因此选择事件不会在这些日期执行。

我试过

  defaultDate: '2015-03-25',
  minDate: '2015-03-25',

  eventConstraint: {
    start: '2015-03-25'
  },

任何人都知道如何做到这一点?

由于

更新 - 像这样?

  viewRender: function(view){
          if (view.start < minDate){
              $('#calendar').fullCalendar('gotoDate', minDate);
          }
      },

1 个答案:

答案 0 :(得分:1)

禁用查看过去

假设您viewRender更新中的代码是所需的行为,则应该是:

viewRender: function(view){
      if (view.start.isBefore(moment())){  //if view start is before now
          $('#calendar').fullCalendar('gotoDate', moment); //go to now
      }
  },

Fullcalendar使用momentjs库作为日期,因此您无法使用<进行比较。

JSFiddle demo

但这有点奇怪。你确定你不希望别人看到过去吗?那么当你半个月的时候呢?

将事件限制在当前

让我们添加一些调整以使其更有用:

  • 两个background events,两个都覆盖相同的日期(过去到当前日期/时间)。我们需要一个作为全天和一个作为定时事件,因为:

      

    定时的背景事件只会在时间上呈现   议程视图中的插槽。全天的背景事件只会是   以月视图或议程视图的全天时段呈现。

  •   
  • selectOverlapeventOverlap回调。这些提供了一种简单的方法来阻止用户创建或移动事件到过去。
  •   
  

events: [{ // All-day past
    id: 'past',
    start: '1900-01-01',
    end: moment(),
    rendering: 'background',
    allDay: true
}, { // Timed past
    id: 'past',
    start: '1900-01-01',
    end: moment(),
    rendering: 'background',
}, /*other event sources...*/ ],

// Disable selection on top of the "past" event
selectOverlap: function (event) {
    return event.id !== 'past';
},
// Disable dragging on top of the "past" event
eventOverlap: function (stillEvent, movingEvent) {
    return stillEvent.id !== 'past';
},

JSFiddle Demo