A dátumok automatikus korrekciója JavaScriptben
A JavaScriptnek van egy nagyon érdekes és hasznos
sajátossága: ha egy Date objektum létrehozásakor
helytelen időpontot adunk meg -
az automatikusan át lesz számítva helyesre.
Nézzük meg egy példán.
Mint tudod, 35 január nem létezik.
A január legnagyobb lehetséges napja a 31.
Vagyis a 35 január
4 nappal több. A JavaScript ebben az
esetben egyszerűen hozzáadja ezt a felesleges 4
napot a következő hónaphoz:
let date = new Date(2018, 0, 35);
console.log(date); // 4 február lesz
Nem csak a felesleges napokat, hanem a hónapokat is
meg lehet adni. Ebben az esetben emlékeznünk kell arra, hogy a hónapok
nullától kezdődnek, ami azt jelenti, hogy az utolsó helyes
hónap a 11-edik. Ha a 12-edik
hónapot adjuk meg, akkor a következő év januárját kapjuk:
let date = new Date(2018, 12, 1); // a 12-ik hónapot adjuk meg
console.log(date); // 2019. január 1 lesz
A leírt korrekció a másik irányba is működik.
Mint tudod, a hónap legkisebb
napja az 1-es sorszámú nap.
Ezért, ha a 0-ás sorszámú napot adjuk meg,
akkor az előző hónap utolsó napját kapjuk:
let date = new Date(2018, 1, 0); // a nulladik napot adjuk meg
console.log(date); // január 31 lesz
Negatív értékeket is megadhatunk
a napoknál és a hónapoknál. Ebben az esetben emlékeznünk kell arra, hogy
a legkisebb nap sorszáma 1, a
legkisebb hónapé pedig 0. Ez azt jelenti,
hogy a mínusz első nap az előző hónap 2
utolsó napjába esik, a mínusz
első hónap pedig az előző év utolsó
hónapjába esik:
let date = new Date(2018, 1, -1); // -1 napot adjuk meg
console.log(date); // január 30 lesz
let date = new Date(2018, -1, 1); // -1 hónapot adjuk meg
console.log(date); // 2017. december 1 lesz
A fentiekben elmondottak hasonlóan működnek az órákra, percekre és másodpercekre is:
let date = new Date(2018, 0, 1, 24, 0, 0); // a 24-ik órát adjuk meg
console.log(date); // január 2, 0 óra lesz
let date = new Date(2018, 0, 1, 25, 0, 0); // a 25-ik órát adjuk meg
console.log(date); // január 2, 1 óra lesz
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 1, 35);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 15, 1);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 3, 31);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 1, 31);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 12, 33);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 33, 33);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 5, 0);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 0, 0);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, -12, -33);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // milyen dátum lesz?
Határozd meg, hogy a JavaScript milyen dátumra alakítja át a következő időpontot:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // milyen dátum lesz?