Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

121
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!