*いしのなかにいる*

oops ! I am in rock !

【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

最後に

「==」とか「===」で普通に比較が成功すればいいのに・・・