Objeto Weirdo Date em JS

Jan 16 2023
Na maioria das vezes, não precisamos examinar o âmago da questão do objeto Javascript Date, mas às vezes isso pode introduzir um bug difuso em seu código. Vamos espiar o problema.

Na maioria das vezes, não precisamos examinar o âmago da questão do objeto Javascript Date, mas às vezes isso pode introduzir um bug difuso em seu código. Vamos espiar o problema.

Então, o que é um objeto Data JavaScript?

Um objeto de data JavaScript é o número de milissegundos que se passaram desde a meia-noite de 1º de janeiro de 1970 00:00:00 UTC.

O problema

console.log(new Date("2023-01-24"));

console.log(new Date("2023-01-24 "));

O que é? Javascript é terrivelmente inconsistente.

Adicionando apenas espaço em branco no final da string dando resultado correto .

outro estranho

console.log(new Date("2023/01/24"));

No entanto, se reorganizarmos o formato da string para Mês-Dia-Ano

console.log(new Date("01-24-2023"));

Agora o resultado está correto ✔.

Então, qual é o problema?

O problema é especificamente com o fuso horário. Observe a parte GMT-0500- isso é 5 horas atrás do GMT. Se eu adicionar 5 horas à data/hora exibida, obterei exatamente meia-noite de 2023/01/24.

A partir de agora, não precisamos de parte do tempo, portanto, mantenha o restante da discussão para a próxima vez.

Remover

Este artigo não cobre todos os detalhes, mas no futuro, tenho certeza de que você criará o objeto Date com cuidado. Tenha cuidado ao usar bibliotecas de terceiros Date Time, como Moment Js, Day Js etc.

Também é possível que alguns cálculos ou manipulações feitas usando o objeto de data possam levar a uma data incorreta se forem feitas incorretamente. Por exemplo, o objeto Date se comporta de forma incompatível em diferentes navegadores. Portanto, é importante verificar novamente os cálculos de data e garantir que o objeto de data seja inicializado e usado corretamente.

Você pode me apoiar por

Palmas

Comentando

Compartilhando este post com seus amigos