How to compare only date in moment.js Ask Question

How to compare only date in moment.js Ask Question

I am new to moment.js. I have a date object and it has some time associated with it. I just want to check if that date is greater than or equal to today's date, excluding the time when comparing.

 var dateToCompare = 2015-04-06T18:30:00.000Z

I just want to check if dateToCompare is equal or greater than today's date. I have checked isSame of moment.js, but it seems to take string and only the date part. But I do not want to convert my date to string or manipulate it further. Because I am worried that javascript may do something unexpected when converting that date to string(like adding the offset or dst,etc), or may be I am wrong.

Sample isSame() from docs

moment('2010-10-20').isSame('2010-10-20');

Also I am looking for something like isSame() and isAfter() combined as one statement.

I need to compare using moment.js only.Please do not suggest plain javascript date comparison.

ベストアンサー1

The docs are pretty clear that you pass in a second parameter to specify granularity.

粒度をミリ秒以外の単位に制限する場合は、単位を 2 番目のパラメータとして渡します。

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

2 番目のパラメーターは精度を決定するものであり、チェックする単一の値だけを決定するものではないため、day を使用すると年、月、日がチェックされます。

'day'あなたの場合は、2 番目のパラメータとして渡します。

おすすめ記事