Automatisk korrigering av datoer i JavaScript
JavaScript har en veldig interessant og nyttig
egenskap: hvis et ugyldig tidspunkt ble angitt
ved opprettelse av Date-objektet -
vil det automatisk bli omregnet til et gyldig.
La oss se på et eksempel.
Som du vet, eksisterer ikke datoen 35. januar.
Maksimalt mulig dag i januar er 31.
Det betyr at vår dato 35. januar
har 4 ekstra dager. JavaScript vil i et slikt
tilfelle bare legge til disse ekstra 4
dager til neste måned:
let date = new Date(2018, 0, 35);
console.log(date); // blir 4. februar
Du kan spesifisere ikke bare ekstra dager, men
også måneder. Samtidig bør det huskes at måneder
starter fra null, no som betyr at den siste gyldige
måneden er 11. Hvis du angir 12. måned,
vil det bli januar neste år:
let date = new Date(2018, 12, 1); // angir 12. måned
console.log(date); // blir 1. januar 2019
Den beskrevne korrigeringen fungerer også i den mindre
retningen. Som du vet, er den minste mulige
dagen i måneden dagen med nummer 1.
Derfor, hvis du angir dag med nummer 0,
vil det bli den siste dagen i forrige måned:
let date = new Date(2018, 1, 0); // angir nullte dag
console.log(date); // blir 31. januar
Du kan også spesifisere negative verdier
for dager og måneder. Samtidig må det huskes at
minste dag har nummer 1, og
minste måned har nummer 0. Dette betyr
at minus første dag faller på 2.
dag fra slutten av forrige måned, og minus
første måned faller rett og slett på den siste
måneden i forrige år:
let date = new Date(2018, 1, -1); // angir -1 dag
console.log(date); // blir 30. januar
let date = new Date(2018, -1, 1); // angir -1 måned
console.log(date); // blir 1. desember 2017
Alt ovenfor nevnt fungerer på samme måte med timer, minutter og sekunder:
let date = new Date(2018, 0, 1, 24, 0, 0); // angir 24. time
console.log(date); // blir 2. januar, 0 timer
let date = new Date(2018, 0, 1, 25, 0, 0); // angir 25. time
console.log(date); // blir 2. januar, 1 time
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 1, 35);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 15, 1);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 3, 31);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 1, 31);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 12, 33);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 33, 33);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 5, 0);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 0, 0);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, -12, -33);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // hvilken dato vil det bli?
Bestem hvilken dato JavaScript vil konvertere følgende tidspunkt til:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // hvilken dato vil det bli?