Perbandingan Tanggal dalam Bentuk String di JavaScript
Misalkan kita memiliki dua tanggal dalam format teks berikut:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Dalam kasus seperti ini, kita dapat melakukan perbandingan kedua tanggal tersebut dan mengetahui mana yang lebih besar:
console.log(date1 > date2); // akan menampilkan true
Bagaimana cara perbandingan tanggal-tanggal ini bekerja? Masalahnya adalah tanggal kita merupakan sebuah string dan JavaScript membandingkannya sebagai string. Artinya, pertama-tama JavaScript membandingkan karakter pertama dari dua tanggal: jika sama, maka JavaScript membandingkan karakter kedua, dan seterusnya, hingga perbedaan ditemukan. Berkat fakta bahwa dalam format tanggal kita tahun terletak di bagian awal, diikuti oleh bulan, dan kemudian hari, perbandingan seperti ini mungkin dilakukan.
Masalahnya adalah jika digit tahun pertama lebih besar dari digit tahun kedua, maka sudah tidak penting lagi bagaimana dengan bulan dan harinya - tahun pertama jelas lebih besar. Jika tahunnya sama, maka tanggal yang lebih besar adalah yang bulannya lebih besar. Dan jika bulannya juga sama, maka tanggal yang lebih besar adalah yang harinya lebih besar. Nah, jika harinya juga sama, maka tanggal-tanggal tersebut setara.
Penting juga agar tanggal berada dalam format yang sama. Dalam kasus kita, pemisah bagian-bagian tanggal adalah tanda hubung. Ini, tentu saja, tidak harus selalu demikian. Misalnya, bisa menggunakan titik:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Atau bahkan menghilangkan pemisahnya:
let date1 = '20201201';
let date2 = '20191201';
Yang terpenting, agar perbandingannya korrek, penempatannya harus sebagai berikut: pertama tahun, lalu bulan, kemudian hari.
Tuliskan kode yang akan membandingkan dua tanggal berikut ini dan menampilkan pesan tentang mana yang lebih besar:
let date1 = '2020-11-30';
let date2 = '2020-12-01';