JavaScript да ҳисоблашда сатр солиштириш
Фарз қилайлик, бизда қуйидаги текст форматида иккита сана мавжуд:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Бундай ҳолда ушбу саналарни солиштириш амлга оширилиб, қайси сана катта эканлигини аниқлаш мумкин:
console.log(date1 > date2); // true ни кўрсатади
Ушбу саналарни солиштириш қандай амалга ошади? Гапимиз шундаки, бизнинг саналаримиз сатр шаклида бўлиб, JavaScript уларни сатр сифатида солиштиради. Яъни, аввал JavaScript икки сананинг биринчи белгиларини солиштиради: агар улар бир хил бўлса, JavaScript иккинчи белгиларини солиштиради ва ҳоказо, то фарқ топгунча. Бизнинг форматимизда сана аввал йил, сўнгра ой ва кун тартибида жойлашгани сабабли, ундай солиштириш имконияти мавжуд.
Гапимиз шундаки, агар биринчи йилнинг рақами иккинчи йилнинг рақамидан катта бўлса, у ҳолда ойлар ва кунлар ҳақида натика ҳеч ҳам аҳамиятга эга эмас - биринчи йил аниқ катта. Агар йиллар мос келса, у ҳолда ойи катта бўлган сана катта бўлади. Агар ойлар ҳам мос келса, у ҳолда куни катта бўлган сана катта бўлади. Агар кунлар ҳам бир хил бўлса, у ҳолда саналар тенг бўлади.
Саналарнинг бир форматда бўлиши ҳам муҳим. Бизнинг ҳолимизда сана қисмларини ажратувчи белгилар чизиқчалардир. Бу, албатта, шарт эмас. Масалан, нуқталар қўйиш мумкин:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Ёки умуман ажратувчи белгиларни олиб ташлаш мумкин:
let date1 = '20201201';
let date2 = '20191201';
Солиштириш тўғри бўлиши учун асосий шарт қуйидаги тартибда жойлашишидир: аввал йил, сўнгра ой, сўнгра кун.
Қуйида келтирилган иккита санани солиштирадиган ва уларнинг қайсиси катталиги ҳақида хабар чиқарадиган код ёзинг:
let date1 = '2020-11-30';
let date2 = '2020-12-01';