Strano oggetto Data in JS

Jan 16 2023
La maggior parte delle volte, non abbiamo bisogno di esaminare il nocciolo dell'oggetto Javascript Date, ma a volte questo può introdurre un bug fuzzy nel tuo codice. Diamo un'occhiata al problema.

La maggior parte delle volte, non abbiamo bisogno di esaminare il nocciolo dell'oggetto Javascript Date, ma a volte questo può introdurre un bug fuzzy nel tuo codice. Diamo un'occhiata al problema.

Allora, cos'è un oggetto JavaScript Date?

Un oggetto data JavaScript è il numero di millisecondi trascorsi dalla mezzanotte del 1° gennaio 1970 00:00:00 UTC.

Il problema

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

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

Coaaa? Javascript è terribilmente incoerente.

Aggiungendo solo uno spazio bianco alla fine della stringa si ottiene un risultato corretto .

Un altro strano

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

Tuttavia, se riorganizziamo il formato della stringa in Mese-Giorno-Anno

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

Ora il risultato è corretto ✔.

Allora, qual è il problema?

Il problema riguarda specificamente il fuso orario. Nota parte GMT-0500- cioè 5 ore dietro GMT. Se aggiungo 5 ore alla data/ora visualizzata, otterrò esattamente la mezzanotte del 24/01/2023.

A partire da ora, non abbiamo bisogno di parte del tempo, quindi tieni il resto della discussione per la prossima volta.

Porta via

Questo articolo non copre tutti i dettagli ma in futuro sono sicuro che creerai l'oggetto Date con attenzione. Fai attenzione quando usi librerie di terze parti Date Time come Moment Js, Day Js ecc.

È anche possibile che alcuni calcoli o manipolazioni eseguiti utilizzando l'oggetto data possano portare a una data errata se eseguiti in modo errato. Ad esempio, l'oggetto Date si comporta in modo non corrispondente in diversi browser. Pertanto, è importante ricontrollare i calcoli della data e assicurarsi che l'oggetto data sia inizializzato e utilizzato correttamente.

Puoi sostenermi con

Battere le mani

Commentare

Condivido questo post ai tuoi amici