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

191
Vistas
MomentJS: muestra la hora incorrecta para la zona horaria del Pacífico

No escribí el código que involucra a Moment. Pero estoy tratando de convertirlo a JavaScript simple.

 moment.tz.add("America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6"); console.log('Central Time: ', moment()._d.toString()); console.log('Pacific Time: ', moment().tz("America/Los_Angeles")._d.toString());
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.4/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone.min.js"></script>

Vivo en la zona horaria central. Como puede ver arriba, MomentJS devuelve la hora correcta para la zona horaria central.

Sin embargo, cuando trato de obtener la hora en la zona horaria del Pacífico, hay 5 horas de diferencia. Sospecho que tiene que ver con la diferencia GMT, como se muestra aquí.

 GMT-0500 (Central Daylight Time)

Revisé la documentación y estudié esto extensamente, pero no puedo entender por qué el tiempo es de 5 horas.

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

0

Creo que el punto clave aquí es evitar usar la variable interna _d .

ConsulteMoment Internal Properties para obtener más detalles.

Estos valores no darán el resultado esperado:

En particular, si Moment TimeZone está en uso, esta propiedad casi nunca será igual al valor real que Moment generará desde su función pública .format().

Sugeriría usar las funciones .toString() o format() para generar el valor de la fecha.

También puede usar la función Date.toLocaleString() para generar una fecha en una zona horaria determinada en JavaScript simple.

 // Moment console.log('Moment:'); console.log('Local Time: ', moment().toString()); console.log('Central Time: ', moment().tz("America/Chicago").toString()); console.log('Pacific Time: ', moment().tz("America/Los_Angeles").toString()); // Plain JavaScript let opts = { weekday: 'short', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' } console.log('\nPlain JS:'); console.log('Local Time: ', new Date().toLocaleString('default', opts)); console.log('Central Time: ', new Date().toLocaleString('default', { ...opts, timeZone: 'America/Chicago' })); console.log('Pacific Time: ', new Date().toLocaleString('default', { ...opts, timeZone: 'America/Los_Angeles' }));
 .as-console-wrapper { max-height: 100% !important; }
 <script src="https://momentjs.com/downloads/moment.js"></script> <script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sin momento, puede convertir su zona horaria como se muestra a continuación

 // I live in a country with GMT+03:00 timezone console.log(new Date()) //outputs: Fri Jul 08 2022 15:53:06 GMT+0300 (GMT+03:00) console.log(new Date().toLocaleString('en-US', {timeZone: 'America/New_York'})) //outputs: "7/8/2022, 8:53:06 AM"

con momento

 var date = moment("2014-12-01T12:00:00Z"); date.tz('America/New_York').format('ha z'); // outputs: 5am PDT

Otras lecturas

Zona horaria del momento

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