Tengo un problema menor. No estoy seguro de lo que estoy haciendo mal, pero el método getMonth() está obteniendo el 7.º mes aunque sea el 8.º mes del año.
No estoy seguro de por qué es eso, ¿me estoy perdiendo un paso?
function startTime() { const today = new Date(); let hour = today.getHours(); let minutes = today.getMinutes(); let seconds = today.getSeconds(); let day = today.getDate(); let month = today.getMonth(); let year = today.getFullYear(); minutes = checkTime(minutes); seconds = checkTime(seconds); document.querySelector('.dateTime').innerHTML = hour + ":" + minutes + ":" + seconds; document.querySelector('.day').innerHTML = day + "/" + month + "/" + year; setTimeout(startTime, 1000); } setTimeout(startTime, 1000); function checkTime(i) { if (i < 10) { i = "0" + i }; // add zero in front of numbers < 10 return i; } <div class="time-display"> <div class="dateTime"></div> <div class="day"></div> </div>El método .getMonth() devuelve el mes indexado a cero (es decir, enero es 0, febrero es 1, etc.). Todo lo que necesita hacer es agregar uno al resultado. Como esto:
// ... code ... let day = today.getDate(); let month = today.getMonth()+1; let year = today.getFullYear(); // ... more code ...Si esta respuesta resolvió tu problema, puedes marcarla como correcta.