JavaScriptда даталарни автомат тарзда тўғрилаш
JavaScriptда juda кизиқарли ва фойдали
хусусият бор: агар 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); // 2019-йил 1-январ булади
Юқорида тавсирилган тарзда тўғрилаш камая
йўналишида ҳам ишлайди. Ҳамма биласиз, ойнинг
энг кичик рақамли куни 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); // 2017-йил 1-декабрь булади
Юқорида айтилганларнинг ҳаммаси соат, минут ва сониялар учун ҳам амал қилади:
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); // қайси сана булади?