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

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

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 Report

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