Automatinis datų koreguojimas JavaScript
JavaScript turi labai įdomią ir naudingą
savybę: jei kuriant Date objektą
būtų nurodytas neteisingas laiko momentas -
jis automatiškai bus perskaičiuotas į teisingą.
Pažiūrėkime pavyzdžiu.
Kaip žinote, 35 sausio dienos nėra.
Maksimali galima sausio diena - 31.
Pasirodo, kad mūsų 35 sausio data
turi 4 papildomas dienas. JavaScript tokiu
atveju tiesiog pridės šias papildomas 4
dienas prie kito mėnesio:
let date = new Date(2018, 0, 35);
console.log(date); // gausis vasario 4 d.
Galima nurodyti ne tik perteklines dienas, bet
ir mėnesius. Tuo pat metu reikia atsiminti, kad mėnesiai
prasideda nuo nulio, o tai reiškia, kad paskutinis teisingas
mėnuo - 11-tas. Jei nurodysite 12-tą
mėnesį, tai gausite kitų metų sausį:
let date = new Date(2018, 12, 1); // nurodome 12-tą mėnesį
console.log(date); // gausis 2019 metų sausio 1 d.
Aprašytas koregavimas veikia ir mažėjimo
kryptimi. Kaip žinote, pati mažiausia
mėnesio diena yra diena su numeriu 1.
Todėl, jei nurodysite dieną su numeriu 0,
gausite paskutinę praėjusio mėnesio dieną:
let date = new Date(2018, 1, 0); // nurodome nulinę dieną
console.log(date); // gausis sausio 31 d.
Taip pat galima nurodyti neigiamas dienų
ir mėnesių reikšmes. Tuo pat metu reikia atsiminti, kad
mažiausia diena turi numerį 1, o
mažiausias mėnuo - numerį 0. Tai reiškia,
kad minus pirmoji diena patenka į 2
dieną nuo praėjusio mėnesio pabaigos, o minus
pirmasis mėnuo patenka tiesiog į paskutinį
praėjusių metų mėnesį:
let date = new Date(2018, 1, -1); // nurodome -1 dieną
console.log(date); // gausis sausio 30 d.
let date = new Date(2018, -1, 1); // nurodome -1 mėnesį
console.log(date); // gausis 2017 metų gruodžio 1 d.
Visa tai, kas pasakyta aukščiau, analogiškai veikia su valandomis, minutėmis ir sekundėmis:
let date = new Date(2018, 0, 1, 24, 0, 0); // nurodome 24-ą valandą
console.log(date); // gausis sausio 2 d., 0 valandų
let date = new Date(2018, 0, 1, 25, 0, 0); // nurodome 25-ą valandą
console.log(date); // gausis sausio 2 d., 1 valanda
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 1, 35);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 15, 1);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 3, 31);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 1, 31);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 12, 33);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 33, 33);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 5, 0);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 0, 0);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, -12, -33);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // kokia data bus?
Nustatykite, į kokią datą JavaScript pakeis šį laiko momentą:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // kokia data bus?