Javascript 如何比较从JSP捕获的java脚本中的两个日期?

Javascript 如何比较从JSP捕获的java脚本中的两个日期?,javascript,Javascript,**我无法使用getTime()转换用户选择的日期。我是java脚本的初学者。我从用户那里得到日期作为开始时间和结束时间,应该能够解析它们并得到它们之间的差异。是否有办法获取整个日期并进行解析,或者我们需要拆分日期?** <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page contentTy

**我无法使用getTime()转换用户选择的日期。我是java脚本的初学者。我从用户那里得到日期作为开始时间和结束时间,应该能够解析它们并得到它们之间的差异。是否有办法获取整个日期并进行解析,或者我们需要拆分日期?**

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
<html>

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    <title>Test</title>
    <script type="text/javascript"  >



 function check_date(){
    var start_date=document.getElementsByName("Start_Date");
    var End_date=document.getElementsByName("End_Date");
    var startdate_2=start_date.item(0).value;
     alert(startdate_2.getTime());*crashes here*
   var diffDays = (End_date - startdate_2)/(24*3600*1000);
     if ( diffDays > 14 )
       {alert("You entrered invalid date. Please repeat again");
       return false;
       }
       else
       {alert ("Will Proceed ");
       return true;}
}



  </script>
  </head>
  <body>
   <form ENCTYPE="multipart/form-data" ACTION="servlet1" METHOD=GET>
    <center>
    <fieldset>
            <label for="Start_Date">Start_Date</label>
            <input type="date" id="Start_Date" name="Start_Date" > <br> </br>
            <label for="END_Date">END_Date</label>
            <input type="date"  name="End_Date" id="End_Date"> <br> </br>
              <input type="submit"  value="Submit" onclick="return check_date();"> </input>
    </fieldset>
    </center>
  </form>
  </body>
</html>

试验
函数检查_日期(){
var start_date=document.getElementsByName(“start_date”);
var End_date=document.getElementsByName(“End_date”);
var startdate_2=开始日期。项(0)。值;
警报(startdate_2.getTime());*在此崩溃*
var diffDays=(结束日期-开始日期2)/(24*3600*1000);
如果(天数>14天)
{提醒(“您请求的日期无效,请重复”);
返回false;
}
其他的
{警报(“将继续”);
返回true;}
}
开始日期


结束日期


即使是
日期
输入,
开始日期
属性仍作为字符串返回。因此,在调用
getTime()
之前,需要将其包装在
newdate()
中,将其转换为日期

另外,由于您的输入设置了
id
s,您可以稍微简化一些,只需使用
document.getElementById

function check_date() {

    // start_date and End_date now point straight at the correct boxes.
    var start_date = document.getElementById("Start_Date");
    var End_date = document.getElementById("End_Date");

    // convert both entries to a Date object from the string value
    var startdate_2 = new Date(start_date.value);
    var enddate_2 = new Date(End_date.value);

    alert(startdate_2.getTime());

    var diffDays = (enddate_2 - startdate_2)/(24*3600*1000);
    if ( diffDays > 14 )
    {
        alert("You entered an invalid date. Please repeat again");
        return false;
    }
    else
    {
        alert ("Will Proceed");
        return true;
    }
}

您希望将这两个字符串转换为Javascript日期对象。看看前面的答案: