当当前字段值为12-31-9999且yearRange为2000:+1时,DatePicker无法正确处理currentDate的计算。当我点击字段打开DatePicker时,currentDate的结果变为1-1-2000。因此,似乎DatePicker将日期包装到yearRange的开头。但是,如果我删除yearRange,则DatePicker默认为-10:+10的范围,这导致年份为9989:10009。
我更愿意在今天点击包含12-31-9999的字段时显示DatePicker。注意:逃离现场时不应进行任何更改。这可能吗?
$(".datePicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd",
yearRange: 2000:+1
});
答案 0 :(得分:1)
您看到的问题是因为输入字段中的日期(" 9999-12-31")超出了您指定的范围(" 2000: + 1&#34)。这个范围产生2000 - 2019年的日期(根据规范,今年结束的是今年和一年加一。)
你也说过#34;但是,如果我删除了yearRange,那么DatePicker默认为-10:+ 10"的范围。不完全的。它默认为" c-10:c + 10"如果你看一下规格,那就不一样了 - " c"意味着它将范围放在10年+/-年的投入中,而不是今天的年份。
我认为这种误解导致了你的错误。如果要显示9999日期,请将年份范围设置为
yearRange: "2000:c+1"
这会将最高年份设置为输入年+1,而不是今天的+1年。
请参阅http://jsfiddle.net/5ornc4gv/7/了解演示。
http://api.jqueryui.com/datepicker/#option-yearRange包含格式字符串的详细信息。
正如我在评论中所说,如果您的软件使用NULL代表结束日期"那么这将不是一个问题。一段时间没有现实的定义结束日期。由年份范围产生的日期选择器中的年份下拉列表很难使用,并且由于其中的数据量,可能会在某些浏览器中造成一些延迟。