Esta es mi sección de cuerpo HTML. Uso el método onClick en el botón. Aquí quiero la duración total de dos días. Mi código no funciona.
<input type="date" id="d1"> <input type="date" id="d2"> <button onClick="calCulateDays">Get Difference</button> <p id="output">Hi</p>Esta es la sección de guión
function calCulateDays() { var d1 = document.getElementById("#d1").value; var d2 = document.getElementById("#d2").value; const dateOne = new Date(d1); const dateTwo = new Date(d2); const time = Math.abs(dateTwo - dateOne); const days = Math.ceil(time / (1000 * 60 * 60 * 24)); document.getElementById("#output").innerHTML = days; }document.getElementById() espera solo el ID sin el '#', ya que @Barmer dijo que es extraño que lo llamaras 'calCulateDays' en lugar de 'calculateDays', por eso ajusté eso:
function calculateDays() { // Note i changed 'getElementById("#d1")' to 'getElementById("d1")' var d1 = document.getElementById("d1").value; var d2 = document.getElementById("d2").value; const dateOne = new Date(d1); const dateTwo = new Date(d2); const time = Math.abs(dateTwo - dateOne); const days = Math.ceil(time / (1000 * 60 * 60 * 24)); // same here remove the '#' document.getElementById("output").innerHTML = days;}
Aquí está el HTML:
<input type="date" id="d1"> <input type="date" id="d2"> // added () to the function name <button onClick="calculateDays()">Get Difference</button> <p id="output">Hi</p>