3
我有一个似乎很无意义的问题,我确信我错过了一些非常愚蠢的事情。 我有以下的JavaScript函数验证日期:用Javascript创建的错误日期
function validateDate(date){
var re = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
if(!re.test(date))
return false;
var separator = (date.indexOf("/") != -1) ? "/" : "-";
var aux = date.split(separator);
var day = parseInt(aux[0]);
var month = parseInt(aux[1]);
var year = parseInt(aux[2]);
alert(aux[0]+" "+aux[1]+" "+aux[2]);
var dateTest = new Date(year,month-1,day);
alert(dateTest); //2nd alert
if(dateTest.getDate() != day)
return false;
if(dateTest.getMonth()+1!= month)
return false;
if(dateTest.getFullYear() != year)
return false;
return true;
}
第一警报始终显示正确的值。 如果传入日期是例如05/07/2011
,一切工作正常。第二个提示显示"Tue Jul 5 00:00:00 UTC+0200 2011"
这是正确的。 但现在,如果我将日期月份更改为八月或九月,则创建日期错误。例如,与日期05/08/2011
,第二个警报将显示"Sun Dec 5 00:00:00 UTC+0100 2010"
。
任何人都知道会发生什么?
你从哪里得到你的约会?它是用户输入吗?这是一个文件吗?如果是用户输入,使用日期小部件会不会更好? – T9b 2012-03-29 11:03:30