Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
¿Cómo mostrar el rango de tiempo en la iteración?

Estoy tratando de ejecutar un bucle for que tiene que repetirse 8 veces. En cada iteración, quiero que el ciclo incremente el valor en +1 hora.

El resultado final debe estar en este formato de hora:

horario de apertura: 08:00, 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00

En este caso, la timediff mencionada en el for...loop tiene el valor de 8.

 var minutesToAdd = 60; var currentDate = new Date("2022-04-10 08:00:00"); var futureDate = new Date(currentDate.getTime() + minutesToAdd * 120000).toLocaleTimeString(); for (let i = 0; i < timeDiff; i++) { console.log(futureDate, 'futureeee date'); }

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Su código nunca actualiza futureDate en el ciclo. Además, cuando espera imprimir 08:00 en el ejemplo, debe imprimir la fecha currentDate cuando aún no se han agregado minutos.

También le sugiero que use la función nativa setMinutes y getMinutes para agregar una cantidad de minutos a un objeto de fecha.

Dice que timeDiff tiene un valor de 8, pero luego dice que quiere 9 salidas (8:00 ... 16:00), por lo que necesitará una iteración adicional.

Finalmente, para obtener el formato de salida hh:mm, existen varias soluciones. Una es elegir una configuración regional que use un formato que se acerque a lo que necesita y expresar que desea el formato corto (sin segundos):

 let timeDiff = 9; // One more to also output 16:00 let minutesToAdd = 60; let currentDate = new Date("2022-04-10 08:00:00"); for (let i = 0; i < timeDiff; i++) { console.log(currentDate.toLocaleTimeString("en-SE", { timeStyle: "short" })); currentDate.setMinutes(currentDate.getMinutes() + minutesToAdd); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Luego puede usar un ciclo for simple para iterar desde 0 hasta timeDiff incluido, incrementando cada iteración en 1 .

 for (let hours = 0; hours <= timeDiff; hours += 1) { // ... }

En lugar de una fecha de inicio, comenzaremos con una marca de tiempo Date.parse("2022-04-10 08:00:00") . Esto nos permite agregar la hora del bucle a la marca de tiempo y crear una nueva fecha.

 const date = new Date(currentTimestamp + hours*HOURS);

Para mostrar solo el tiempo que me he tomado la libertad de usar la solución provista por la respuesta de trincot .

 const MILLISECOND = 1 , MILLISECONDS = MILLISECOND; const SECOND = 1000*MILLISECONDS, SECONDS = SECOND ; const MINUTE = 60*SECONDS , MINUTES = MINUTE ; const HOUR = 60*MINUTES , HOURS = HOUR ; const timeDiff = 8; var currentTimestamp = Date.parse("2022-04-10 08:00:00"); for (let hours = 0; hours <= timeDiff; hours += 1) { const date = new Date(currentTimestamp + hours*HOURS); console.log(date.toLocaleString(undefined, { timeStyle: "short" })); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda