JavaScript-da sanalarni satr solishtirish
Faraz qilaylik, bizda quyidagi matn formatida ikkita sana mavjud:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Bunday holatda, ushbu sanalarni solishtirish amalga oshirilib, qaysi sana kattaligini aniqlash mumkin:
console.log(date1 > date2); // true chiqadi
Ushbu sanalarni solishtirish qanday amalga oshiriladi? Gap shundaki, bizning sanalarimiz satrlardan iborat va JavaScript ularni satr sifatida solishtiradi. Ya'ni, u avval ikkita sananing birinchi belgilarini solishtiradi: agar ular bir xil bo'lsa, JavaScript ikkinchi belgilarni solishtiradi va hokazo, farq topilmaguncha davom etadi. Bizning sana formatimizda avval yil, keyin oy va keyin kun joylashganligi tufayli, bunday solishtirish mumkin.
Gap shunda, agar birinchi yilning raqami ikkinchi yilning raqamidan katta bo'lsa, demak oylar va kunlar bilan nima bo'lishi muhim emas - birinchi yil ancha katta. Agar yillar mos kelsa, unda oyi katta bo'lgan sana katta bo'ladi. Agar oylar ham mos kelsa, unda kuni katta bo'lgan sana katta bo'ladi. Agar kunlar ham bir xil bo'lsa, unda sanalar teng bo'ladi.
Shuningdek, sanalarning formati bir xil bo'lishi muhim. Bizning holatda, sana qismlarining ajratgichlari defislardir. Bu, albatta, shart emas. Masalan, nuqtalarni qo'yish mumkin:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Yoki umuman ajratgichlarni olib tashlash mumkin:
let date1 = '20201201';
let date2 = '20191201';
Muhimi, solishtirish to'g'ri bo'lishi uchun, joylashtirish quyidagicha bo'lishi kerak: avval yil, keyin oy, keyin kun.
Quyida keltirilgan ikkita sanani solishtiradigan va qaysi biri katta ekanligi haqida xabar chiqaradigan kod yozing:
let date1 = '2020-11-30';
let date2 = '2020-12-01';