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

167
Vistas
Evite que moment.tz cambie la fecha al usar zonas horarias

Estoy tratando de usar la biblioteca moment.tz, sin embargo, las fechas siguen cambiando en las nuevas zonas horarias ya que la hora se establece en la medianoche (0:00:00). Me gustaría que las fechas no cambien al cambiar de zona horaria.

Esencialmente tengo

 const checkin = 2022-08-30T00:00:00.000Z <-- Date Object console.log(moment.tz(checkin, 'YYYY-MM-DD HH:mm:ss', 'UTC') ); console.log(moment.tz(checkin, 'YYYY-MM-DD HH:mm:ss', 'America/Toronto') );

Cuando uso la zona horaria América/Toronto, la fecha se retrasa un día porque la hora es medianoche. Esto da como resultado el siguiente resultado:

 Moment<2022-08-30T00:00:00Z> Moment<2022-08-29T20:00:00-04:00>

Mi objetivo es tener la función de momento usando la zona horaria para reflejar la misma fecha (AAAA-MM-DD) como utc. La fecha de entrada no debe cambiarse según la zona horaria. ¿Alguna sugerencia?

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

0

Puede cambiar la zona horaria y mantener los mismos valores de fecha y hora configurando el segundo parámetro en verdadero. Asegúrese de que esto es realmente lo que quiere hacer, el objeto de momento ahora representará un momento diferente en el tiempo.

 // Create date object let checkin = new Date('2022-08-30T00:00:00.000Z'); // Convert to moment object let checkinMoment = moment.tz(checkin, 'YYYY-MM-DD HH:mm:ss', 'UTC'); // Display console.log(checkinMoment.format()); // Change timezone, keep date and time values the same (ie shift to // a different moment in time checkinMoment.tz('America/Toronto', true); // Show same date and time but in different timezone console.log(checkinMoment.format()); // Alternatively, parse a timestamp in the required zone let d = '2022-08-30T00:00:00.000'; let torontoCheckin = moment.tz(d, "America/toronto"); console.log(torontoCheckin.format());
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.34/moment-timezone-with-data-2012-2022.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