目次
1. 直接的な比較
実は、Date
オブジェクトは直接的な比較(<
, >
, <=
, >=
)で問題なく動作します。
JavaScriptは内部的にDate
オブジェクトのvalueOf
メソッドを呼び出して数値(タイムスタンプ)に変換して比較するため、このような直接的な比較が可能です。
const date1 = new Date("2023-10-20 10:10"); const date2 = new Date("2023-10-20 11:11"); if (date1 > date2) { console.log("date1はdate2より後です"); } else if (date1 < date2) { console.log("date1はdate2より前です"); } else { console.log("同じ日時です"); }
2. 等価性の確認
日時の等価性をチェックする際に===
や!==
を使用すると、オブジェクトの参照が比較されるため、期待する結果が得られない可能性があります。
したがって、等価性を確認する場合は、getTime()
メソッドを使って数値として比較することを推奨します。
const date1 = new Date("2023-10-20 10:10"); const date2 = new Date("2023-10-20 10:10"); if (date1.getTime() === date2.getTime()) { console.log("同じ日時です"); } else { console.log("異なる日時です"); }
まとめ
JavaScriptでのDate
オブジェクト同士の比較は、直接的な方法やgetTime()
を使用した方法など、複数の方法が存在します。
使用する方法は状況や好みに応じて選択するとよいでしょう。