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
La zona horaria está cambiando por 1 hora en la zona horaria EST para el valor del mes mayor que 1

Estoy trabajando en uno de mis problemas de cliente. Cambié la zona horaria de mi sistema a "(UTC-5:00) Hora del Este (EE. UU. y Canadá)". Escribí el siguiente código en mi proyecto:

new Date(year,month.date)

Observé que si el valor del mes es 0 o 1, entonces funciona bien:

 new Date(2021,1,21) Sun Feb 21 2021 00:00:00 GMT-0500 (Eastern Standard Time)

pero si el valor del mes es mayor que 1, entonces la zona horaria cambiará en 1 hora-

 new Date(2021,2,21) Sun Mar 21 2021 00:00:00 GMT-0400 (Eastern Daylight Time)

que está causando problema. por favor, alguien sugiera sobre esto por qué está sucediendo y cuál podría ser la solución de esto. la respuesta esperada debe estar en javascript o angular. También se aceptará la biblioteca de momentos. este problema solo es reproducible para algunas zonas horarias. Está funcionando bien para IST.

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

0

EMCAScript utiliza la configuración del sistema host para el desplazamiento de la zona horaria. La salida de Date.prototype.toString se basa en esas configuraciones y reglas inferidas para el horario de verano estándar y si se observan.

Dado que una marca de tiempo dice Hora estándar del este y la otra Hora de verano del este, muestra que las fechas se relacionan con las horas en que las reglas de compensación basadas en la configuración regional de su sistema cambian de la hora estándar al horario de verano.

Si solo desea la hora estándar, debe haber una opción en su configuración regional para desactivar la observación del horario de verano. Pero esa será una configuración de todo el sistema y potencialmente afectará las fechas y horas que se muestran en todas partes de su sistema.

De forma alternativa, puede usar toLocaleString con una ubicación que se encuentre en la zona horaria EST de EE. UU. pero que no observe el horario de verano, por ejemplo, América/Panamá. Sin embargo, el formato es diferente al del toString predeterminado. Si desea el mismo formato, deberá construirlo usted mismo, consulte Cómo formatear una fecha de JavaScript

 console.log(new Date(2022,1,25).toLocaleString('en',{timeZone:'America/Panama', timeZoneName:'short'}));

Tenga en cuenta que esto no tiene ningún efecto en la instancia de Fecha en sí, solo cambia los valores que se muestran cuando se llama a toLocaleString de esta manera.

about 4 years ago · Juan Pablo Isaza Report

0

su fecha está superando el horario de verano de EST

Puede evitar esto especificando la zona horaria de su fecha, por ejemplo:

 new Date(2021, 3, 21).toLocaleString('en-GB', { timeZone: 'UTC' }));

devolverá la fecha formateada a la cadena de zona horaria UTC en-GB, o puede usar algo como la función Date.UTC para asegurarse de que todas sus fechas se manejen como una zona horaria UTC

Las fechas y horas son un poco una pesadilla en JS: es posible que no solucionen su problema, pero con suerte lo guiarán en la dirección correcta.

Con respecto a los paquetes, si está haciendo mucho trabajo de fecha y hora, sugeriría Moment o los paquetes más pequeños de Luxon, realmente eliminan mucho el dolor de cabeza de las fechas de JS.

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!