Dijit/form/DateTextBox没有'不像2033年以后

Dijit/form/DateTextBox doesn't like year 2033 onwards

本文关键字:不像 2033年 form DateTextBox 没有 Dijit      更新时间:2023-09-26

我正在尝试创建一个接受mm/yy的文本框。出于某种原因,这不喜欢2032年以后的日期。有人能告诉我为什么不,解决方案是什么吗?

更新:问题严格来说是一个2位数的年份问题。

<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
  • 它不使用标准的弹出式日历,无论是通过弹出式还是从文本框输入日期都无关紧要
  • 这个问题严格来说是一个2位数的年份格式问题——当日期格式改为MM/yyyy并且fullYear为true时,它可以正常工作

如果有人还在想,这是意料之中的行为。请参阅文档。

当使用两位数年份时,对于yy和yyyy模式,根据当前年份之前80年和之后20年的滑动窗口选择一个世纪。

2013年,2033年正好在这个窗口之外,33年被解释为1933年。