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

309
Views
moment js no muestra la hora local, se muestra igual en la base de datos

cómo mostrar la fecha del campo createdAt según la zona horaria local. Lo he intentado, solo funciona para localhost cuando lo cargo en el servidor, muestra el formato UTC de datos de campo createdAt.

aquí está mi código

 dateFormatwithSec(date_time) { const testDateUtc = moment.utc(date_time); const localDate = moment(testDateUtc).local(); return localDate.format('YYYY-MM-DD HH:mm:ss'); },

por qué no proporciona la salida correcta en el servidor.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Esto no es una respuesta, es realmente un comentario extenso. El OP debe incluir una cadena de fecha_hora de ejemplo, el resultado real y el resultado esperado en el OP, no en los comentarios.

Hasta que eso se sepa, nadie puede entender lo que significa " no proporciona la salida correcta en el servidor ".

Aquí hay una explicación de lo que está sucediendo, espero que ayude.

El método utc de Moment hace que muestre las marcas de tiempo como UTC. Para el análisis, hace que use UTC solo si no hay una compensación en la marca de tiempo. Entonces, dada una marca de tiempo como "2021-12-02 15:15:33", devolverá un objeto de momento con una Fecha que tiene un valor de tiempo equivalente a 2021-12-02T15:15:33+00:00.

El método local hace que moment muestre la fecha en la zona horaria local. Tenga en cuenta que "local" significa según la configuración del sistema, no la ubicación real del sistema.

Considere lo siguiente, donde se agregó el token Z para mostrar el desplazamiento que ese momento está usando para los objetos:

 function dateFormatwithSec (date_time) { // Set moment to UTC mode and parse the input string as UTC let testDateUtc = moment.utc(date_time); console.log('testDateUtc: ' + testDateUtc.format('YYYY-MM-DD HH:mm:ss Z')); // Set the moment object to local mode and return a formatted date let localDate = moment(testDateUtc).local(); return localDate.format('YYYY-MM-DD HH:mm:ss Z'); } let ts = '2021-12-02 15:15:33+04:00'; console.log('localDate : '+ dateFormatwithSec(ts));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

PD. Al analizar cadenas, siempre es mejor proporcionar también el formato, por lo que:

 moment.utc(date_time, 'YYYY-MM-DD HH:mm:ss')

se prefiere. También permite a los mantenedores ver el formato esperado (aunque también debería estar en la documentación). Incluso cambios muy pequeños en el formato harán que el momento vuelva al analizador integrado de la implementación, por ejemplo, '2021-12-02 15:15:33+04:00' frente a '2021-12-02 15:15:33 +04:00'.

about 4 years ago · Juan Pablo Isaza Report

0

Encontré una solución simple tomando una idea de RobG. me esta funcionando perfectamente. lo que hice.

 function dateFormatwithSec (date_time) { const dateutc = date_time.replace('Z', ''); // console.log(dateutc); const dt = new Date(`${dateutc}Z`); const finaldate = moment(dt).format('L, h:mm ss a'); //display local time with moment console.log( "local time is - " , finaldate) return finaldate ; } let ts = '2021-12-03T18:34:17.000Z'; dateFormatwithSec(ts);

 "local time is - ", "12/04/2021, 12:04 17 am"
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!