jQuery: DatePicker не позволяет мне выбрать максимальную дату

Я использую средство выбора даты в jQuery и указываю минимальную сегодняшнюю дату и максимальную дату 31 января. Однако, когда календарь появляется, 31-й нельзя выбрать, несмотря на то, что код выглядит правильно.

Вот код:

function initializePickers() {
  jQuery('.date-start').each(function() {
      startEndPickers(this);
  });
  jQuery('.date-end').each(function() {
      startEndPickers(this);
  });
}

function startEndPickers(input) {
  jQuery(input).datepicker({
      dateFormat: "M dd, yy",
      minDate: new Date(),
      maxDate: new Date('2014-01-31')
  });
}

А вот jsFiddle, который демонстрирует невозможность выбора 31 января: http://jsfiddle.net/Hec5m/

Кто-нибудь знает, что вызывает это? maxDate четко указано как 31-й, а не 30-й.

1 ответ

Решение

new Date('2014-01-31') выбирает полночь 31 января, что означает, что ни одно время в течение дня не будет выбрано, поэтому оно исключено.

Вы можете исправить это либо с помощью 2014-02-01 в качестве максимальной даты ( jsFiddle) или путем указания времени вместе с конечной датой в 23:59:59 ( jsFiddle).

Пользовательский интерфейс jQuery также позволяет вам вводить строку в качестве аргумента (так же, как ваш формат даты - так "Jan 31, 2014" в вашем случае), а не передавая в Date объект, который ведет себя так, как вы ожидаете. ( jsFiddle)

Другие вопросы по тегам