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

164
Vistas
¿Por qué me agregan 5 horas en lugar de 4 en el horario de verano cuando uso el método de agregar y cómo puedo resolverlo?

Necesito agregar 4 horas a la fecha de mi momento js. Así que para eso estoy usando

 /* this timestamp is this date 27-03-2045 00:00 */ const someday = moment(2374178400000); const addedFourHours = someday.add(4, 'hours');

el 27 de marzo, el horario de verano ya pasó y se agregaron exactamente 4 horas y la fecha de finalización en addedFoursHours es el Mon Mar 27 2045 04:00:00 GMT+0200 .

Pero cuando pruebo la fecha en que sucede el horario de verano, por ejemplo, el 26 de marzo a la medianoche

 /* this timestamp is this date 26-03-2045 00:00 */ const someday = moment(2374095600000); const addedFourHours = someday.add(4, 'hours');

luego obtengo Sun Mar 26 2045 05:00:00 GMT+0200 . En el caso anterior, obtuve la hora 04:00 cuando agregué 4 horas después de la medianoche. ¿Por qué en horario de verano obtengo la hora 05:00?

Como puedo resolver esto ?

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

0

Entonces, lo que desea no es sumar 4 horas, sino encontrar la próxima vez que las horas sean un múltiplo de 4.

Por lo tanto, elimine toda sugerencia de su código de que está agregando cuatro horas (cf. su nombre de variable).

Puedes hacerlo:

 const someday = moment(2374095600000); console.log(someday.toString()); const hours = someday.hours(); someday.hours(hours + 4 - (hours % 4)); // Find next time that is multiple of 4. console.log(someday.toString());
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment.min.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Desea agregar 3, 4 o 5 horas según la fecha, pero desea establecer valores específicos para las horas. Lea el valor de la hora, agregue 4 y establezca el valor:

 const today = moment(2374178400000); const four = moment(today).hours(today.hour() + 4); const eight = moment(four).hours(four.hour() + 4); const twelve = moment(eight).hours(eight.hour() + 4); const sixteen = moment(twelve).hours(twelve.hour() + 4); const twenty = moment(sixteen).hours(sixteen.hour() + 4); const tomorrow = moment(twenty).hours(twenty.hour() + 4); console.log(today); console.log(four); console.log(eight); console.log(twelve); console.log(sixteen); console.log(twenty); console.log(tomorrow);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment.min.js"></script>

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