I am a beginner in JS. I have user input values of the date. I want to get the difference in days. Tried several methods, none of those worked. Used the input type as numbers but it doesn't work for an example like 03092017 - 29082017, it outputs the number difference not the date.
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>