Kulinganisha Tarehe kwa Mfumo wa Mstari kwenye JavaScript
Tuchukulie tuna tarehe mbili kwenye mfumo ufuatao wa maandishi:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Kwa hali hii inawezekana kutekeleza kulinganisha tarehe hizi na kujua ni tarehe ipi ni kubwa zaidi:
console.log(date1 > date2); // itatoa true
Je, kulinganisha hizi tarehe kunafanywaje? Jambo ni kwamba, tarehe zetu ziko kwenye mfumo wa mistari na JavaScript inalinganisha mistari hiyo kama mistari. Hiyo ni, kwanza inalinganisha herufi za kwanza za tarehe mbili: ikiwa ni sawa, basi JavaScript inalinganisha herufi za pili, na kadharika, hadi itakapopata tofauti. Kumetokana na ukweli kwamba kwenye mfumo wetu wa tarehe kwanza kabisa kuna mwaka, kisha kuna mwezi, na kisha kuna siku, ndio maana inawezekana kufanyika kulinganisha kama hii.
Jambo ni kwamba ikiwa tarakimu ya mwaka wa kwanza inakuwa kubwa kuliko tarakimu ya mwaka wa pili, inamaana haimakani tena, kile kilichoko kwenye miezi na siku - mwaka wa kwanza ndio ukubwa kabisa. Ikiwa miaka inafanana, basi tarehe kubwa zaidi itakuwa ile ambayo mwezi wake ni mkubwa zaidi. Na ikiwa hata miezi inafanana, basi tarehe kubwa zaidi itakuwa ile ambayo siku yake ni kubwa zaidi. Sawa, na ikiwa hata siku zinafanana, basi tarehe zote ni sawa.
Ni muhimu pia kwamba tarehe ziwe kwenye mfumo mmoja. Kwa upande wetu vitenganishi vya sehemu za tarehe ni vistari-wima (deflisi). Hii, bila shaka, si lazima. Kwa mfano, inawezekana kuweka nukta:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Au hata kuondoa vitenganishi kabisa:
let date1 = '20201201';
let date2 = '20191201';
Jambo la msingi, ili kulinganisha kiwe sahihi, mpangilio ufuatao unapaswa kuwepo: kwanza mwaka, kisha mwezi, kisha siku.
Andika msimbo, ambao utalinganisha tarehe mbili zilizopendekezwa hapa chini na utatoa ujumbe kuwa, ipi kati yao ni kubwa zaidi:
let date1 = '2020-11-30';
let date2 = '2020-12-01';