Tengo este código javascript para programar cuándo se muestran ciertos divs, pero el problema que tengo es que no está usando la hora del dispositivo o nuestra zona horaria. Realmente necesito que se asigne a la zona horaria central.
function displayMsg() { var currentTime = new Date(); function toUTC(date) { return Date.UTC( date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds() ); } toUTC(currentTime); var startMsg1Time = new Date("2021-10-03T11:15:00Z"); var endMsg1Time = new Date("2021-10-08T14:33:00Z"); var startMsg2Time = new Date("2021-11-15T23:00:01Z"); var endMsg2Time = new Date("2021-11-16T22:59:59Z"); if (currentTime.getTime() > startMsg1Time.getTime() && currentTime.getTime() <= endMsg1Time.getTime()) { $('.Msg1').show(); } else if (currentTime.getTime() > endMsg1Time.getTime) { $('.Msg1').hide(); } if (currentTime.getTime() > startMsg2Time.getTime() && currentTime.getTime() <= endMsg2Time.getTime()) { $('.Msg2').show(); } else if (currentTime.getTime() > endMsg2Time.getTime) { $('.Msg2').hide(); } } displayMsg();Como nota al margen, esto no está logrando completamente lo que necesito. Estoy tratando de mostrar un mensaje todos los domingos de 8:30 a. m. a 11:15 a. m. y los viernes de 7:00 p. m. a 8:15 p. m. Iba a usar este método y simplemente crear un cronograma de un mes a la vez, pero si alguien puede recomendar un mejor enfoque, me alegra saberlo.
Puede hacer algo como en el siguiente fragmento, es decir, dar solo minutos y horas y luego verificar si day = 1 (Monday) . Configuré la hora de la alarma de 11:25 PM . m. a 11:35 PM . m. ( Monday ) ( puede configurar cualquiera )
Use la actualización de la alarma según la necesidad, aquí configuré
setIntervalusando1sec
El fragmento a continuación es solo para demostración, puede tener cualquier cantidad de mensajes y alarmas y especificar el día de la alarma para que suene o el mes (y puede ser el año en que suene la alarma)
setInterval(function() { var d = new Date(); var Msg1Day = d.getDay(); var Msg1TimeStart = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 25, 0, 0) var Msg1TimeEnd = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 35, 0, 0) if (Msg1Day === 1) { if (d >= Msg1TimeStart && d <= Msg1TimeEnd) { document.querySelector("#demo").innerHTML = "Alarm is ON" document.querySelector(".Msg1").innerHTML = "You already enjoyed Sunday, It's Monday Time and soon will Be Tuesday(Alarm is from 11:25 PM - 11:35 PM)" } else { document.querySelector("#demo").innerHTML = "Alarm is OFF" document.querySelector(".Msg1").innerHTML = "" } } else { document.querySelector("#demo").innerHTML = "Today is not monday" } }, 1000); <div class="Msg1"></div> <div id="demo">Alaram status will be in 1sec and will be updated every second</div>