Marekebisho ya Kiotomatiki ya Tarehe katika JavaScript
JavaScript ina kipengele cha kuvutia sana na cha muhimu:
ikiwa kipindi cha wakati kisicho sahihi kilipewa
wakati wa kuunda kitu cha Date
- kitahesabiwa upya kiotomatiki kuwa sahihi.
Tuangalie kwa mfano.
Kama unavyojua, tarehe 35 Januari haipo.
Siku ya juu kabisa inayowezekana ya Januari ni 31.
Hii inamaanisha kuwa tarehe yetu 35 Januari
ina siku 4 za ziada. JavaScript kwa upande wake
itaongeza tu siku hizo 4 za ziada
kwenye mwezi ujao:
let date = new Date(2018, 0, 35);
console.log(date); // itatokea 4 Februari
Inawezekana kubainisha sio tu siku za ziada, bali
pia miezi. Wakati huu inapaswa kukumbukwa kuwa miezi
huanza na sifuri, na kwa hivyo mwezi wa mwisho sahihi
ni 11. Ikiwa utabainisha mwezi wa 12,
basi itatokea Januari ya mwaka ujao:
let date = new Date(2018, 12, 1); // tunabainisha mwezi wa 12
console.log(date); // itatokea 1 Januari 2019
Marekebisho yaliyoelezwa yanafanya kazi pia kwa upande
wa kupungua. Kama unavyojua, siku ya chini kabisa
ya mwezi ni siku yenye nambari 1.
Kwa hivyo, ikiwa utabainisha siku yenye nambari 0,
basi itatokea siku ya mwisho ya mwezi uliopita:
let date = new Date(2018, 1, 0); // tunabainisha siku ya sifuri
console.log(date); // itatokea 31 Januari
Pia inawezekana kubainisha maadili hasi ya
siku na miezi. Wakati huu inahitajika kukumbuka kuwa
siku ya chini kabisa ina nambari 1, na
mwezi wa chini kabisa - nambari 0. Hii inamaanisha,
kuwa siku ya kwanza hasi itaangukia 2
siku mwishoni mwa mwezi uliopita, na mwezi wa kwanza hasi
utaangukia tu kwenye mwezi wa mwisho
wa mwaka uliopita:
let date = new Date(2018, 1, -1); // tunabainisha siku -1
console.log(date); // itatokea 30 Januari
let date = new Date(2018, -1, 1); // tunabainisha mwezi -1
console.log(date); // itatokea 1 Desemba 2017
Yote yaliyosemwa hapo juu yanafanya kazi sawa na masaa, dakika na sekunde:
let date = new Date(2018, 0, 1, 24, 0, 0); // tunabainisha saa ya 24
console.log(date); // itatokea 2 Januari, saa 0
let date = new Date(2018, 0, 1, 25, 0, 0); // tunabainisha saa ya 25
console.log(date); // itatokea 2 Januari, saa 1
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 1, 35);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 15, 1);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 3, 31);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 1, 31);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 12, 33);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 33, 33);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 5, 0);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 0, 0);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, -12, -33);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // tarehe gani itakuwa?
Amua, JavaScript itabadilisha kipindi kifuatacho cha wakati kuwa tarehe gani:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // tarehe gani itakuwa?