Я использовал moment.js
для расчета 30-дневного лимита в поле формы, где я использовал daterangepicker.js
для выбора даты. Я отключил всю предыдущую дату с текущей даты и все даты после 30 дней, считая с текущей даты. Все работало нормально, пока «годовая» нация не напала (хе-хе?).
Мой расчет даты работал нормально с использованием moment.js, но когда год меняется, все ломается. Всякий раз, когда я меняю год на 2021 с 2020, каждая дата становится отключенной. Например, я хочу опубликовать что-то сегодня (22/12/2020) и хочу установить крайний срок в следующем году, чтобы сделать это, когда я меняю год, каждая дата становится отключенной. Перед изменением года я вижу включенные даты следующего года и могу выбрать его, он отлично работает. Но всякий раз, когда я меняю даты года, он становится отключенным. Это мой текущий код для расчета ограничения даты:
$('input[name = "application_deadline"]').daterangepicker({
locale: {
format: 'DD-MM-YYYY HH:mm'
},
singleDatePicker: true,
showDropdowns: true,
startDate: moment(),
endDate: moment().subtract(-29, 'days'),
minDate: moment(),
maxDate: moment().subtract(-29, 'days')
});
Мой код технически работает, если я отключу строку:
maxDate: moment().subtract(-29, 'days')
Затем каждая дата включается после текущей даты, но удаляет ограничение в 30 дней, которое мне требуется для работы.
Я прикрепил два скриншота до и после смены года для справки.
Та же проблема и тот же результат, что и текущий код.
То, что вы описываете, похоже на ошибку в daterangepicker.js. Чтобы воспроизвести, я протестировал последнюю версию с их веб-сайта, используя jQuery 3.5.1.
К сожалению, я не могу воспроизвести то, что вы описываете. Вы пробовали обновиться до последней версии 3.1?
Хорошо, я постараюсь использовать последнюю версию.
Спасибо. Я обновил момент, daterangepicker до последней версии. Кажется, все работает нормально.
Мне просто любопытно, что, если вы используете
maxDate: moment().add(29, 'days')