如题,
<script language='javascript'>
if(document.myform.xf_time.value<‘2007-5-10’)
  {……}
</script>
表单输入的日期值小于某一日期是这样表达吗?

解决方案 »

  1.   

    不可以的,即使时间格式一样也不能这样比较,试想
    '2007-5-10'与'2007-10-10'字符传比较的结果
    应该这样:<script language='javascript'>
    function compDate()
    {
    var d1,d2;
    with(document.form1)
    {
    d1=parseInt(data1.value.replace(/-/g,""));//把2007-5-10这样的日期转化为数字2007510
    d2=parseInt(data2.value.replace(/-/g,""));
    if(d1>d2)
    alert(d1+">"+d2);
    else
    alert(d1+"<="+d2);
    }
    }
    </script>
    <form name="form1">
    <input type="text" name="data1"><input type="text" name="data2"><input type="button" onclick="compDate()">
    </form>
      

  2.   

    用字符串比较是可行的,提供一个格式化代码:
    var str = "2005-3-2"; //2005-03-02
    var str = "2005-3-22"; //2005-03-02
    str = str.replace(/(\D)(\d)(?=\D|$)/g, "$10$2");还可以用日期对象比较
    str = str.replace(/\-/g,"/");
    var d1 = (new Date(str)).valueOf();//毫秒数
    //另一个日期同理
    然后一减就行了
      

  3.   

    给你个例子看看呗~~~
    使用Date.Parse方法将字符串转换为Date类型。
    据测试,IE8与FF3.6.8都可运行。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Date.Parse</title>
    </head>
    <body>
    <script  type="text/javascript">
    var befDate=Date.parse("2010-12-21");
    var aftDate=Date.parse("2010-12-22");
    alert("befDate>aftDate="+(befDate>aftDate));
    </script>
    </body>
    </html>