【JavaScript】Date型の値を比較するには
こんにちは。
なぜかDate型の比較がうまくいかったので調べてみました。
同じ日付、時刻でもイコールにならない
同一の日時を持っていても別オブジェクトの場合、「==」とか「===」での比較はfalseになる
「<」とか「>」はうまくいくのに・・・
date = "Tue Mar 15 2016 00:00:00 GMT+0900 (JST)" new Date(date) == new Date(date) // false new Date(date) === new Date(date) // false
chromeの開発者ツールでも確認できるので、自分で動かして確認すると理解しやすい
getTime()を使用すると比較できる
Javaならequals()を使いたいとこだが、そうも言ってられないのでDate.prototype.getTime を使用して比較する。
date = "Tue Mar 15 2016 00:00:00 GMT+0900 (JST)" new Date(date).getTime() == new Date(date).getTime() // true new Date(date).getTime() === new Date(date).getTime() // true
最後に
「==」とか「===」で普通に比較が成功すればいいのに・・・