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.