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

219
Visualizações
new Date(...).toISOString() en JavaScript da un resultado incorrecto en un día del año

Estoy construyendo un calendario y noté que la fecha es incorrecta en un día del año.

Quería estandarizar las fechas a ISO 8601. Tomemos 2022-03-27 por ejemplo:

 const foo = new Date(2022, 2, 27).toISOString()

Esto da 2022-03-27T00:00:00.000Z como era de esperar.

Sin embargo, al día siguiente, 2022-03-28 :

 const bar = new Date(2022, 2, 28).toISOString()

Esto da 2022-03-27T23:00:00.000Z - 27 de marzo a las 23:00.

¿Por qué pasó esto?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Lo que sucede es que el horario de verano británico (horario de verano, también conocido como DST) se activa entre sus dos ejemplos (específicamente, comienza a la 01:00 el 2022-03-27). toISOString siempre le da la hora UTC (GMT), como puede ver en la Z al final de la cadena, pero su hora local está una hora por delante de la UTC después de la 01:00 el 27-03-2022 hasta que finaliza el horario de verano a las 02:00 el 30 de octubre de 2022.

En su primer ejemplo, está creando una Date con la hora local de la medianoche del 27 de marzo de 2022, cuando su hora local es (aparentemente) GMT+00:00 (como la mía aquí en el Reino Unido). Entonces, toISOString le devuelve 00:00 porque su hora local es GMT/UTC (esa fecha/hora es una hora antes de que comience el horario de verano).

Pero en su segundo ejemplo, está creando una Date en la hora local a la medianoche del 2022-03-28, cuando está en horario de verano. Por lo tanto, está desplazado de UTC por una hora (UTC está una hora detrás de usted). Medianoche 2022-03-28 Hora del Reino Unido es 23:00 2022-03-27 UTC.

No sé qué quieres hacer con estas cosas, pero si quieres crear una Date para la medianoche UTC del 28 de marzo de 2022, usa new Date(Date.UTC(2022, 2, 28)) .

about 4 years ago · Santiago Gelvez 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