我是JS的初學者。我有日期的用戶輸入值。我想在幾天內獲得差異。嘗試了幾種方法,但沒有一種方法奏效。 將輸入類型用作數字,但對於03092017 - 29082017等示例不起作用,它會輸出數字差異而不是日期。用戶輸入 - Javascript中兩個日期的差異
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]看看(https://momentjs.com/docs/#/durations/creating/),有權處理的持續時間的能力.. 。 – Myonara
https://stackoverflow.com/questions/11170054/compare-dates-with-javascript –
謝謝。我現在花更多時間爲moments.js轉介。 @Myonara – Tithira