Disculpas si la pregunta estuvo mal redactada, lo que estoy buscando es algo como esto; digamos que le dan dos fechas (pero lo único que realmente le importa es la parte de tiempo del objeto de fecha, no la fecha), 8 a. m. y 5 p. m., quiero poder imprimir la hora cada 30 minutos entre las dos fechas (es decir, 8:00, 8:30, 9:00, 9:30... 16:30, 17:00). Se agradecen las respuestas.
Puede almacenar la fecha de inicio y la fecha de finalización en un objeto Date y luego usar un ciclo while para agregar continuamente 30 minutos al start mientras la fecha de start es más pequeña que la fecha de end .
const start = new Date(); start.setHours(8, 0, 0); //8 AM const end = new Date(); end.setHours(17, 0, 0); //5 PM while (start <= end) { console.log(start.toLocaleString('en-US', {hour: '2-digit', minute: '2-digit'})); start.setMinutes(start.getMinutes() + 30); }Si desea realizar algún tipo de operación o ejecutar una función (como desconectar la hora) cada 30 minutos entre un rango de horas, puede usar lo que se conoce como formato cron en combinación con un módulo que puede ingerir cron valores y ejecutar funciones en un horario predefinido.
Sugiero el módulo node-cron .
Para ejecutar una tarea cada 30 minutos entre las 8 a. m. y las 5 p. m., en este caso imprimiendo la hora actual, puede crear un cronograma usando el formato cron .
El formato cron para cada 30 minutos entre las 8 a. m. y las 5 p. m. sería */30 08-17 * * * .
const cron = require('node-cron'); cron.schedule('*/30 08-17 * * *', () => { console.log(new Date().toLocaleTimeString()); });