javascript Dateオブジェクトを使ってイコールで日付比較して結果が一致しない

javascript Dateオブジェクトを使ってイコールで日付比較して結果が一致しない

javascriptで、dateオブジェクトを使って、そのままイコールで日付を比較すると同じ値であってもfalseがかえってくるので比較方法を記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 102.0.5005.115

日付比較

dateオブジェクトを使って、イコールで日付を比較します。

// 日付を設定
let date1 = new Date("2020/05/11");
let date2 = new Date("2020/05/11");

// 比較
if (date1 == date2) {
  console.log("同じ日付");
} else{
  console.log("異なる日付"); // falseと判定される
} 

結果は「false」が返ってきて、「異なる日付」と表示されてします。

if (date1 === date2) としても結果は同じです。

日付比較方法

比較したい場合は「getTime()」を使用して、1970 年1月1 日00:00:00からの経過ミリ秒を取得して比較すると正しい結果を得ることが可能です。

if (date1.getTime() == date2.getTime()) {
  console.log("同じ日付"); // 同じ日付となる
} else{
  console.log("異なる日付");
} 

また、条件式は以下のように三項演算子を使用すると1行で記述することもできます。

(date1.getTime() == date2.getTime()) ? console.log("同じ日付") : console.log("異なる日付");