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

315
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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