JavaScript-də Tarixlərin Avtomatik Korreksiyası
JavaScript-in çox maraqlı və faydalı bir xüsusiyyəti var:
əgər Date obyekti yaradılarkən səhv bir vaxt
müəyyən edilirsə, o avtomatik olaraq düzgün vaxta
çevrilir. Gəlin bir nümunəyə baxaq.
Bildiyiniz kimi, yanvarın 35-i kimi bir tarix yoxdur.
Yanvar ayının maksimum mümkün olan günü 31-dir.
Bu o deməkdir ki, bizim 35 yanvar tariximiz
4 əlavə günə malikdir. Belə bir halda JavaScript
bu əlavə 4 günü sadəcə növbəti aya əlavə edəcək:
let date = new Date(2018, 0, 35);
console.log(date); // 4 fevral alınacaq
Yalnız əlavə günləri deyil, həm də ayları göstərmək olar.
Bunu edərkən yadda saxlayın ki, aylar sıfırdan başlayır,
bu o deməkdir ki, sonuncu düzgün ay 11-dir. Əgər
12-ci ayı göstərsəniz, növbəti ilin yanvarı alınacaq:
let date = new Date(2018, 12, 1); // 12-ci ayı göstəririk
console.log(date); // 1 yanvar 2019-cu il alınacaq
Təsvir edilən korreksiya kiçik istiqamətdə də işləyir.
Bildiyiniz kimi, ayın ən kiçik günü 1 nömrəli gündür.
Ona görə də, əgər 0 nömrəli günü göstərsəniz,
əvvəlki ayın son günü alınacaq:
let date = new Date(2018, 1, 0); // sıfırıncı günü göstəririk
console.log(date); // 31 yanvar alınacaq
Həmçinin mənfi gün və ay dəyərlərini də göstərmək olar.
Bunu edərkən yadda saxlayın ki, ən kiçik gün 1 nömrəsinə,
ən kiçik ay isə 0 nömrəsinə malikdir. Bu o deməkdir ki,
mənfi birinci gün əvvəlki ayın sondan 2-ci gününə,
mənfi birinci ay isə sadəcə əvvəlki ilin son ayına düşəcək:
let date = new Date(2018, 1, -1); // -1 günü göstəririk
console.log(date); // 30 yanvar alınacaq
let date = new Date(2018, -1, 1); // -1 ayı göstəririk
console.log(date); // 1 dekabr 2017-ci il alınacaq
Yuxarıda deyilənlərin hamısı saatlar, dəqiqələr və saniyələrlə də eyni şəkildə işləyir:
let date = new Date(2018, 0, 1, 24, 0, 0); // 24-cü saatı göstəririk
console.log(date); // 2 yanvar, 0 saat alınacaq
let date = new Date(2018, 0, 1, 25, 0, 0); // 25-ci saatı göstəririk
console.log(date); // 2 yanvar, 1 saat alınacaq
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 1, 35);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 15, 1);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 3, 31);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 1, 31);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 12, 33);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 33, 33);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 5, 0);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 0, 0);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, -12, -33);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // hansı tarix alınacaq?
Müəyyən edin ki, JavaScript aşağıdakı vaxt anını hansı tarixə çevirəcək:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // hansı tarix alınacaq?