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

How to compare 2 dates in java script captured from JSP ?

本文关键字:脚本 java 日期 何比较 比较 JSP      更新时间:2023-09-26

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

 <!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>

Start_Datevalue 属性仍以字符串形式返回,即使它是date输入。因此,您需要在调用 getTime() 之前将其包装在 new Date() 中,将其转换为 Date 。

此外,由于您的输入已设置id,因此您可以稍微简化一些事情,只需使用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 Date 对象。 看看之前的答案:用 JavaScript 比较两个日期