Automatische correctie van datums in JavaScript
JavaScript heeft een zeer interessante en nuttige
eigenschap: als bij het aanmaken van een Date object
een ongeldig tijdstip werd opgegeven -
zal het automatisch worden omgerekend naar een geldig tijdstip.
Laten we een voorbeeld bekijken.
Zoals je weet, bestaat 35 januari niet.
De maximaal mogelijke dag in januari is 31.
Dat betekent dat onze datum 35 januari
4 extra dagen heeft. JavaScript zal in zo'n
geval simpelweg deze extra 4
dagen optellen bij de volgende maand:
let date = new Date(2018, 0, 35);
console.log(date); // wordt 4 februari
Je kunt niet alleen extra dagen opgeven, maar
ook extra maanden. Houd er hierbij rekening mee dat maanden
bij nul beginnen, wat betekent dat de laatste geldige
maand de 11de is. Als je de 12de
maand opgeeft, krijg je januari van het volgende jaar:
let date = new Date(2018, 12, 1); // we geven de 12de maand op
console.log(date); // wordt 1 januari 2019
De beschreven correctie werkt ook in de mindere
richting. Zoals je weet, is de kleinst mogelijke
dag van de maand dag nummer 1.
Daarom, als je dag nummer 0 opgeeft,
krijg je de laatste dag van de vorige maand:
let date = new Date(2018, 1, 0); // we geven de nulde dag op
console.log(date); // wordt 31 januari
Je kunt ook negatieve waarden opgeven
voor dagen en maanden. Houd er hierbij rekening mee dat
de minimale dag nummer 1 heeft, en
de minimale maand - nummer 0. Dit betekent
dat min eerste dag valt op de 2
laatste dag van de vorige maand, en min
eerste maand valt simpelweg in de laatste
maand van het vorige jaar:
let date = new Date(2018, 1, -1); // we geven -1 dag op
console.log(date); // wordt 30 januari
let date = new Date(2018, -1, 1); // we geven -1 maand op
console.log(date); // wordt 1 december 2017
Alles hierboven beschreven werkt op dezelfde manier met uren, minuten en seconden:
let date = new Date(2018, 0, 1, 24, 0, 0); // we geven het 24ste uur op
console.log(date); // wordt 2 januari, 0 uur
let date = new Date(2018, 0, 1, 25, 0, 0); // we geven het 25ste uur op
console.log(date); // wordt 2 januari, 1 uur
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 1, 35);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 15, 1);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 3, 31);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 1, 31);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 12, 33);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 33, 33);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 5, 0);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 0, 0);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, -12, -33);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // welke datum wordt het?
Bepaal naar welke datum JavaScript het volgende tijdstip zal omzetten:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // welke datum wordt het?