Dijit/form/DateTextBox не любит 2033 год

Я пытаюсь создать текстовое поле, которое принимает мм / гг. По какой-то причине это не нравится датам после 2032 года. Может кто-нибудь сказать мне, почему нет и каково решение?

Обновление: проблема, кажется, строго двузначная годовая проблема.

<input type="text" class="miniTextBox" id="${id}_Date" name="${id}_Date" maxlength="5"
 data-dojo-attach-point="indate"
 data-dojo-type="dijit/form/DateTextBox"  
 data-dojo-props="constraints:{fullYear: false, datePattern: 'MM/yy', max: '2099-12-31'},
 popupClass: 'dojox.widget.MonthAndYearlyCalendar'" 
 promptMessage="Example: 10/14" />

Если это имеет какое-либо значение, может быть полезна следующая информация:

  • Использует Dojo 1.8
  • Это часть шаблона виджета
  • В этом виджете есть модификация postCreate, которая устанавливает ограничение fullYear в false.
  • Он не использует стандартный всплывающий календарь, и не имеет значения, введена ли дата всплывающим окном или из текстового поля.
  • проблема, по-видимому, связана исключительно с двузначным форматом года - она ​​прекрасно работает, когда формат даты изменяется на MM/ гггг и fullYear имеет значение true.

1 ответ

Решение

Если кому-то все еще интересно, это ожидаемое поведение. Смотрите документацию.

Когда используются двузначные годы, выбирается столетие в соответствии со скользящим окном в 80 лет до и 20 лет после нынешнего года для шаблонов yy и yyyy.

2033 был только за этим окном в 2013 году и 33 был интерпретирован как 1933.

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