JavaScriptda sanalarni avtomatik tuzatish
JavaScript juda qiziqarli va foydali
xususiyatga ega: agar Date ob'ekti yaratilganda
noto'g'ri vaqt nuqtasi ko'rsatilgan bo'lsa -
u avtomatik ravishda to'g'ri vaqtga qayta hisoblanadi.
Keling, buni misol bilan ko'rib chiqaylik.
Ma'lumki, yanvarning 35-kuni mavjud emas.
Yanvar oyining eng katta mumkin bo'lgan kuni - 31.
Demak, bizning 35 yanvar sanamiz
4 ortiqcha kunni tashkil qiladi. JavaScript bunday
holatda shunchaki ushbu ortiqcha 4
kunni keyingi oyga qo'shib qo'yadi:
let date = new Date(2018, 0, 35);
console.log(date); // natijada 4 fevral bo'ladi
Nafaqat ortiqcha kunlarni, balki
oylarni ham ko'rsatish mumkin. Bunda shuni esda tutish kerakki, oylar
noldan boshlanadi, demak oxirgi to'g'ri
oy - 11-chi oy. Agar 12-chi
oyni ko'rsatilsa, keyingi yilning yanvar oyi hosil bo'ladi:
let date = new Date(2018, 12, 1); // 12-chi oyni ko'rsatamiz
console.log(date); // natijada 2019 yil 1 yanvar bo'ladi
Tasvirlangan tuzatish kichik tomonga ham
ishlaydi. Ma'lumki, oyning eng minimal
kuni 1-raqamli kundir.
Shuning uchun, agar 0-raqamli kun ko'rsatilsa,
oldingi oyning oxirgi kuni hosil bo'ladi:
let date = new Date(2018, 1, 0); // nolchi kuni ko'rsatamiz
console.log(date); // natijada 31 yanvar bo'ladi
Manfiy qiymatli kunlar va oylarni ham
ko'rsatish mumkin. Bunda shuni esda tutish kerakki,
eng minimal kun 1-raqamga, eng minimal oy esa 0-raqamga ega. Demak,
minus birinchi kun oldingi oyning oxiridan 2
kuniga to'g'ri keladi, minus
birinchi oy esa shunchaki oldingi
yilning oxirgi oyiga to'g'ri keladi:
let date = new Date(2018, 1, -1); // -1 kunni ko'rsatamiz
console.log(date); // natijada 30 yanvar bo'ladi
let date = new Date(2018, -1, 1); // -1 oyni ko'rsatamiz
console.log(date); // natijada 2017 yil 1 dekabr bo'ladi
Yuqorida aytilganlarning barchasi soatlar, daqiqalar va soniyalar bilan ham bir xil ishlaydi:
let date = new Date(2018, 0, 1, 24, 0, 0); // 24-chi soatni ko'rsatamiz
console.log(date); // natijada 2 yanvar, 0 soat bo'ladi
let date = new Date(2018, 0, 1, 25, 0, 0); // 25-chi soatni ko'rsatamiz
console.log(date); // natijada 2 yanvar, 1 soat bo'ladi
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 1, 35);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 15, 1);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 3, 31);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 1, 31);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 12, 33);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 33, 33);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 5, 0);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 0, 0);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, -12, -33);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // qaysi sana bo'ladi?
Quyidagi vaqt nuqtasini JavaScript qaysi sanaga o'zgartirishini aniqlang:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // qaysi sana bo'ladi?