Я пробовал два популярных ответа из Обнаружение "недопустимой даты" . Дата экземпляра в JavaScript для проверки действительных дат. Я тестировал их обоих в IE8. К сожалению, оба разочаровывают. См. Здесь http://jsfiddle.net/Lijo/uzSU6/2/
Есть ли лучший JavaScript-код, который будет работать в IE8 + Chrome + Firefox?
Примечание. К моему удивлению, в Firefox тоже плохо работает...
УСЛОВИЕ
Предполагается, что формат даты будет форматом даты США с косой чертой (/)
CODE
isValidDateCheck2('12/33/2012') ;
isValidDateCheck1('12/12/2012') ;
function isValidDateCheck1(d)
{
alert(Object.prototype.toString.call(d));
if ( Object.prototype.toString.call(d) !== "[object Date]" )
{
alert('Not Valid');
}
if(!isNaN(d.getTime()))
{
alert(d.getTime());
}
}
function isValidDateCheck2(d)
{
var timestamp=Date.parse(d);
alert(timestamp);
if (isNaN(timestamp)==false)
{
var date=new Date(timestamp);
alert(date);
}
}
ИЗМЕНИТЬ
Подход@mplungjan (сначала предлагается) указан в http://jsfiddle.net/Lijo/uzSU6/7/. Это было неудачно в IE8 для одного сценария - http://jsfiddle.net/Lijo/uzSU6/12/.