我有这个form
代码来区分html中<script type="text/javascript">
function dueDate(){
var date1=document.getElementById("date1").value;
var date2=document.getElementById("date2").value;
var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
alert(diffDays)
}
</script>
标记内的两个日期
html
这是我的form
代码(两个日期选择器位于<div class="login-form">
<form name="login" method="POST">
<table cellspacing="10">
<tr>
<td id="text">Book Return Due Date:</td>
<td><input id="date1" type="date" name="username"></td>
</tr>
<tr>
<td id="text">Current Date:</td>
<td><input id="date2" type="date" name="password"></td>
</tr>
<tr>
<td id="text"><input id="button1" type="submit" value="Check for Due" onclick="dueDate()"></td>
<td><input id="button2" type="reset" value="Reset"></td>
</tr>
</table>
</form>
</div>
内)
{{1}}
但我收到的警告是“NaN”。请帮帮我
答案 0 :(得分:3)
Javascript有Date()对象来操作日期,你可以试试这个:
var date1 = new Date(document.getElementById("date1").value);
var date2= new Date(document.getElementById("date2").value);
var diffDays = Math.round((date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24);
答案 1 :(得分:1)
您需要日期对象,而不仅仅是从输入返回的字符串值,才能从另一个中减去一个日期
document.getElementById('button1').addEventListener('click', dueDate);
function dueDate() {
var date1 = document.getElementById("date1").value;
var date2 = document.getElementById("date2").value;
var obj1 = new Date(date1);
var obj2 = new Date(date2);
var diffDays = (obj2 - obj1) / (1000 * 60 * 60 * 24);
alert(diffDays)
}
&#13;
<div class="login-form">
<form name="login" method="POST">
<table cellspacing="10">
<tr>
<td id="text">Book Return Due Date:</td>
<td>
<input id="date1" type="date" name="username">
</td>
</tr>
<tr>
<td id="text">Current Date:</td>
<td>
<input id="date2" type="date" name="password">
</td>
</tr>
<tr>
<td id="text">
<input id="button1" type="submit" value="Check for Due">
</td>
<td>
<input id="button2" type="reset" value="Reset">
</td>
</tr>
</table>
</form>
</div>
&#13;
答案 2 :(得分:0)
当你从你的html获得价值时,它的类型是字符串,所以你应该解析它到目前为止。当您尝试减去两个字符串时,它返回NAN。查看here的Date.parse方法。