我有两个jQuery日期选择器,一旦更改,将触发一些ajax来获取两个日期之间的所有信息。
我想通过使用此代码转换为日期来运行一些代码来检查第一个日期是否小于第二个日期:
function FormatUkDate(dateStr) {
dateStr = dateStr.split("/");
return new Date(dateStr[2], dateStr[1] - 1, dateStr[0]);
}
这很好用,但问题是即使我输入的日期'50 / 08/2011'它仍然有效并将其转换为Javascript日期,我相信通过在开始日期添加额外的天数。
有没有办法正确验证这个?
谢谢!
答案 0 :(得分:1)
您可以使用jquery蒙版插件进行验证,您可以查看它http://digitalbush.com/projects/masked-input-plugin/
答案 1 :(得分:1)
要处理日期,您可以尝试使用datejs库。它有许多功能,包括验证日期。要解决您的问题,您可以使用Date.validateDay
方法。您也可以使用datejs来比较日期。
答案 2 :(得分:1)
嗯...我想插件会是一个更好的解决方案,但是它值得:
function FormatUkDate(dateStr) {
dateStr = dateStr.split("/");
var newDate = new Date(dateStr[2], dateStr[1] - 1, dateStr[0]);
return newDate.getDate() == Number(dateStr[0]) && newDate.getMonth() == Number(dateStr[1]) - 1? newDate : null;
}
如果日期延续到下个月,将返回null。
新代码:P