【发布时间】:2018-02-06 13:52:21
【问题描述】:
我是 JS 的初学者。我有日期的用户输入值。我想在几天内得到差异。尝试了几种方法,都没有奏效。 将输入类型用作数字,但它不适用于 03092017 - 29082017 之类的示例,它输出的是数字差而不是日期。
function resetForm() {
location.reload();
}
function dates() {
var n_Date = document.getElementById('ddate').value;
var e_Date = document.getElementById('cdate').value;
var nDate = new Date(n_Date);
var eDate = new Date(e_Date);
var nMonth = n_Date.getMonth();
var eMonth = eDate.getMonth();
var nYear = nDate.getFullYear();
var eYear = eDate.getFullYear();
var Years = Math.abs(nYear - eYear);
var Months = Math.abs(nMonth - eMonth);
var Dates = Math.abs(nDate - eDate);
var fDate = Dates + Months + Years;
if (fDate <= 7) {
alert("You have: " + fDate + " days to return the book");
} else if (eDate > 7) {
var g = (fDate * 50);
alert("Overdue by: " + fDate + " days fee is: " + g);
}
}
<form id="myform">
<table>
<tr>
<td>Book Returning Due Date:</td>
<td><input type="date" id="ddate" placeholder="dd/mm/yyyy"></td>
</tr>
<tr>
<td>Current Date:</td>
<td><input type="date" id="cdate" placeholder="dd/mm/yyyy"></td>
</tr>
<tr>
<td><input type="button" onclick="dates();" value="Check for Due"> </td>
<td><input type="button" id="reset" onclick="resetForm()" value="Reset"></td>
</tr>
</table>
</form>
【问题讨论】:
-
请查看moment.js,它可以处理持续时间...
-
谢谢。我现在花更多时间在moments.js上,供参考。 @Myonara
-
@TranAudi 我经历过,但没有帮助。使用的时刻。谢谢
标签: javascript html