最简单的方法是这么做,
var dt = new Date(document.YourFormName.YourText.value);
if (isNaN(dt))
 alert("not a date");
else
  alert("it is a date");
但有格式限制,如果你要更复杂的,你需要自己分析输入的文字

解决方案 »

  1.   

    最简单的办法是让用户自己选日期,免得输错了<html>
    <body onload="javascript:load()"><form name="frm" method="post">
    时间:<input type="text" name="begintime" size="10"">
    </form>
            <object id="Calendar" classid="CLSID:8E27C92B-1264-101C-8A2F-040224009C02"
            width="250" height="200"
            codebase="MSCAL.OCX"><!-- Control name:Canlendar Control -->
            </object><script language="JavaScript">
    <!-- 
    function update()
    {
        frm.begintime.value = Calendar.Year + "-" + Calendar.Month + "-" + Calendar.Day
    }function load()
    {
        Calendar.AfterUpdate=update
    }
    -->
    </script><!-- -->
    <SCRIPT LANGUAGE=javascript FOR=Calendar EVENT=AfterUpdate>
        document.frm.begintime.value = Calendar.Year + "-" + Calendar.Month + "-" + Calendar.Day
    </SCRIPT>
    <!--
    <script language="VBScript">Sub Calendar_AfterUpdate()
        frm.begintime.value = Calendar.Year & "-" & Calendar.Month & "-" & Calendar.Day
    end sub</script>
    //-->
    </body>
    </html>
    或者参照:
    http://go6.163.com/colorweb/js/mengxhselectdate.htm
      

  2.   

    用日期控件吧,我收集的这个:
    http://www.98xj1.com/mmkk/demo.htm
    把接受返回值的input设为readonly或者disabled
      

  3.   

    我用的是
    <object name=dtFr classid=clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1 style="height:12pt" codebase="MSComCt2.cab"></object>MSComCt2.cab可到activex.microsoft.com当