Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

122
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda