Таҳрири худкори датаҳо дар 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); // кадом таърих хоҳад буд?