Dijit / form / DateTextBox不喜欢2033年以后

时间:2013-08-01 15:08:12

标签: javascript dojo year2038

我正在尝试创建一个接受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时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

如果有人还在想,这是预期的行为。请参阅documentation

  

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

2033年就在2013年窗外,33岁被解释为1933年。