javascript - Bagaimana cara mengetahui apakah dua tanggal berada pada hari yang sama atau pada jam yang sama?


Objek Date di JavaScript membandingkan tanggal termasuk waktu, jadi, jika Anda membandingkan: time1.getTime() === time2.getTime(), mereka akan "false" jika setidaknya satu milidetik berbeda.

Yang kita butuhkan adalah memiliki cara yang baik untuk membandingkan berdasarkan Jam, Hari, Minggu, Bulan, Tahun? Beberapa di antaranya mudah, seperti tahun: time1.getYear() === time2.getYear() tetapi dengan hari, bulan, jam lebih kompleks, karena memerlukan beberapa validasi atau pembagian.

Apakah ada modul yang bagus atau kode yang dioptimalkan untuk melakukan perbandingan tersebut?

Jawaban #1

Prototipe Date memiliki API yang memungkinkan Anda memeriksa tahun, bulan, dan hari-dalam-bulan, yang tampaknya sederhana dan efektif.

Anda akan ingin memutuskan apakah aplikasi Anda membutuhkan tanggal agar sama dari sudut pandang lokal tempat kode Anda berjalan, atau jika perbandingan harus berdasarkan nilai UTC.

function sameDay(d1, d2) {
  return d1.getFullYear() === d2.getFullYear() &&
    d1.getMonth() === d2.getMonth() &&
    d1.getDate() === d2.getDate();
}

Terdapat getter UTC yang sesuai getUTCFullYear(), getUTCMonth(), dan getUTCDate().

Jawaban #2

var isSameDay = (dateToCheck.getDate() === actualDate.getDate() 
     && dateToCheck.getMonth() === actualDate.getMonth()
     && dateToCheck.getFullYear() === actualDate.getFullYear())

Itu akan memastikan tanggal-tanggal tersebut berada di hari yang sama.

Baca lebih lanjut tentang Javascript Date ke string

Artikel terkait