FullCalendar.js, как ограничить выбор даты одним днем ​​в представлении месяца - PullRequest
0 голосов
/ 26 октября 2019

Я использую FullCalendar.js для выбора даты на моей веб-странице.

Я хочу ограничить диапазон выбираемых дат в моем полном виджете календаря до one day only (по умолчанию перетаскивание для нескольких дат или щелчок для одной даты). Я хотел бы эффективно отключить функцию перетаскивания для выбора нескольких дат, либо:

  1. Отключение встроенного события перетаскивания (возможно, неправильное)
  2. Ограничение диапазона дат для выбираемых датодин день (это кажется более разумным)

В этом вопросе есть ответы о том, как ограничить выбор даты одним днем, используя просмотр недели , указав start и end в опции selectConstraint. Однако это же решение не работает для представления месяца .

Как ограничить диапазон выбора даты одним днем ​​для просмотра месяца?

MyКод:

var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: [ 'interaction', 'dayGrid', 'timeGrid' ],
    selectable: true,
    header: {
      left: 'prev,next ',
      center: 'title',
      right: ''
    },
    validRange: {
      start: today
    },
    selectConstraint:{
      start: '00:01', 
      end: '23:59', 
    },
    dateClick: function(info) {
      custom_date = true;
      $("#start_date").val(info.dateStr);
      $("#end_date").val(info.dateStr);
    }
});

1 Ответ

1 голос
/ 26 октября 2019

Оказывается, вы можете использовать функцию selectAllow.

Сначала преобразуйте строки даты в секунды с помощью getTime() / 1000.

Сравните время начала и время окончания с числомсекунд за день 86400. Если оно меньше или равно этому числу, был выбран только один день.

Рабочий код:

selectAllow: function (e) {
   if (e.end.getTime() / 1000 - e.start.getTime() / 1000 <= 86400) {
       return true;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...