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

118
Vistas
convertir el tiempo a la zona horaria local no funciona con moment.js en React

Estoy convirtiendo una marca de tiempo en un objeto DB usando moment :

 {moment(comment.created_at).local(true).format('h:mm a')}

Mi tiempo se emite en tiempo UTC porque así es como se crea en mi base de datos. Así que veo '6:45 p. m.', por ejemplo, cuando quiero ver la hora en MI zona horaria (EST) o la zona horaria relativa del usuario. ¿De acuerdo con el momento en que docs local() se convertirá a su zona horaria actual? Llamar al método local() como se muestra en mi código anterior no cambia la zona horaria. ¿Estoy usando esto incorrectamente?

Mi objeto DB

 { client_id: 24 created_at: "2022-02-11 17:41:39.330443" id: 22 report: "sfsf" report_category: "Client Assigned" volunteer_id: 23 }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Su base de datos está almacenando la fecha sin un indicador de compensación. Esto significa que ese momento no puede determinar automáticamente la zona horaria. Según la documentación sobre las fechas de análisis :

momento (...) es el modo local. Se supone que la entrada ambigua (sin desplazamiento) es la hora local. La entrada inequívoca (con desplazamiento) se ajusta a la hora local. * moment.utc(...) es el modo utc. Se supone que la entrada ambigua es UTC.

Entonces, si sabe que su entrada es UTC y sabe que no tendrá un indicador de compensación, use moment.utc() en lugar de moment() .

Además, no desea utilizar local(true) , ya que pasar "true" solo cambiará la zona horaria en el objeto sin cambiar la hora (consulte la documentación ). Así que te queda:

 {moment.utc(comment.created_at).local().format('h:mm a')}
about 4 years ago · Juan Pablo Isaza Denunciar

0

Convertí su marca de tiempo DB en formato ISO y luego pasé a su implementación

 let t = "2022-02-11 17:41:39.330443" let utcISOTimestamp = moment.utc(t).toDate() console.log(utcISOTimestamp) //let res = moment(utcISOTimestamp).local(true).format('h:mm a'); let res = moment(moment.utc(t).toDate()).local(true).format('h:mm a'); console.log(res)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Intenta usar:

 moment.utc('2022-02-11 17:41:39').local().format('YYYY-MM-DD HH:mm:ss')
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