Аутоматско подешавање датума у JavaScript
JavaScript има веома занимљиву и корисну
карактеристику: ако је при креирању објекта Date
наведен неисправан тренутак времена -
он ће аутоматски бити прерачунат у исправан.
Хајде да погледамо на примеру.
Као што знате, датум 35 јануара не постоји.
Максимално могући дан у јануару је 31.
Дакле, наш датум 35 јануара
има 4 дана вишка. JavaScript у таквој
ситуацији ће једноставно додати та додатна 4
дана на следећи месец:
let date = new Date(2018, 0, 35);
console.log(date); // добиће се 4. фебруар
Могуће је навести не само додатне дане, већ
и месеце. При томе треба имати на уму да месеци
почињу од нуле, што значи да последњи исправан
месец је 11-ти. Ако се наведе 12-ти
месец, добиће се јануар следеће године:
let date = new Date(2018, 12, 1); // наводимо 12-ти месец
console.log(date); // добиће се 1. јануар 2019. године
Описано подешавање ради и у мању
страну. Као што знате, најмањи могући
дан у месецу је дан са бројем 1.
Због тога, ако се наведе дан са бројем 0,
добиће се последњи дан претходног месеца:
let date = new Date(2018, 1, 0); // наводимо нулти дан
console.log(date); // добиће се 31. јануар
Такође је могуће навести негативне вредности
дана и месеци. При томе треба запамтити да
најмањи дан има број 1, а
најмањи месец - број 0. То значи
да минус први дан пада на 2.
дан с краја претходног месеца, а минус
први месец пада на последњи
месец претходне године:
let date = new Date(2018, 1, -1); // наводимо -1 дан
console.log(date); // добиће се 30. јануар
let date = new Date(2018, -1, 1); // наводимо -1 месец
console.log(date); // добиће се 1. децембар 2017. године
Све горе речено аналогно ради са сатима, минутима и секундама:
let date = new Date(2018, 0, 1, 24, 0, 0); // наводимо 24-ти сат
console.log(date); // добиће се 2. јануар, 0 сати
let date = new Date(2018, 0, 1, 25, 0, 0); // наводимо 25-ти сат
console.log(date); // добиће се 2. јануар, 1 сат
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 1, 35);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 15, 1);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 3, 31);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 1, 31);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 12, 33);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 33, 33);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 5, 0);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 0, 0);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, -12, -33);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // који датум ће бити?
Одредите, у који датум ће JavaScript претворити следећи тренутак времена:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // који датум ће бити?