jQuery DatePicker:当日期字段为12-31-9999时,currentDate不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery DatePicker:当日期字段为12-31-9999时,currentDate不起作用相关的知识,希望对你有一定的参考价值。
当当前字段值为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
});
您看到的问题是因为输入字段中的日期(“9999-12-31”)超出了您指定的范围(“2000:+1”)。这个范围产生2000 - 2019年的日期(根据规范,结束年份是今天的一年加一个)。
你还说“但是,如果我删除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来表示没有实际定义结束日期的时间段的“结束日期”,那么这将不是一个问题。由年份范围产生的日期选择器中的年份下拉列表很难使用,并且由于其中的数据量,可能会导致某些浏览器出现一些延迟。
以上是关于jQuery DatePicker:当日期字段为12-31-9999时,currentDate不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如果超出范围,防止 jQuery UI datepicker 更改文本字段的值
jQuery UI Datepicker 将备用字段填充并格式化为 MySQL 日期
JQuery datepicker 默认日期和多个 datepicker