Ejemplo: Cuando es medianoche (hr)0: (min) 0: (seg) 1 Cambie el elemento HTML P a "Nuevo día"...
Este código funciona, pero requiere que actualice la página cuando se cumpla el tiempo. Uso var.getMinutes() para fines de prueba.
const d = new Date(); const h = d.getHours(); const m = d.getMinutes(); const s = d.getSeconds(); const day = document.querySelector('#current-day'); function addDay() { if(m === 13) { day.innerHTML = 'New Day'; console.log('works'); } return } window.setInterval(addDay(),1000);Hay dos problemas en su código.
setInterval acepta una función como primer argumento, pero le está dando el valor de retorno de la llamada a la función . En su lugar, debe pasar la función a setInterval , así: window.setInterval(addDay, 1000); .Llamada de función (cuando ejecuta una función):
addDay()Definición de función (cuando describe lo que hace la función):
function(args) { // perform some calculations using the arguments }addDay , está utilizando m . Pero m se evaluará sólo una vez. No se actualizará a medida que pase el tiempo (como debería). Debes evaluar m dentro de la función. Más importante aún, debe evaluar la fecha actual en la función. Entonces, cada vez que se ejecuta la función, el valor de d y m se actualizará. (ver el fragmento de código a continuación) const day = document.querySelector('#current-day'); function addDay() { const d = new Date(); const h = d.getHours(); const m = d.getMinutes(); const s = d.getSeconds(); if (m === 13) { day.innerHTML = 'New Day'; console.log('works'); } } window.setInterval(addDay, 1000); <div id="current-day"></div>