var birthday =['2008-08-31','2008-08-40'];
for(i=0;i<birthday.length;i++)
{
var y = birthday[i].split("-")[0];
var m = birthday[i].split("-")[1]*1-1;
var d = birthday[i].split("-")[2];
var date = new Date(y,m,d);
if(date.getYear()==y&&date.getMonth()==m&&date.getDate()==d)
  alert("有效");
else
  alert("无效");
}
}

解决方案 »

  1.   

    <script>
    var dStr = "2008-05-01".replace(/-/g,"/");
    if(!/^19\d{2}\/\d{2}\/\d{2}$/.test(dStr) || new Date(dStr).toString() == "NaN")
        alert("时间格式不正确!");
    else 
        alert("时间格式正确!");
    </script>
      

  2.   

    用javascript日期控件,直接选择
      

  3.   


    function checkDate(ds) {
    var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/
    var mr = reg.exec(ds);
    if (!mr) return false;
    var y = parseInt(mr[1], 10);
    var m = parseInt(mr[2], 10)-1;
    var d = parseInt(mr[3], 10);
    var date = new Date(y,m,d);
    return (date.getYear()==y &&
    date.getMonth()==m &&
    date.getDate()==d);
    }alert(checkDate("2008-02-20"));
    alert(checkDate("2008-02-30"));