Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

moment js subtract'ed date equal another date by <= returns false instead true

I am very much confused by following behavior while comparing two dates:

moment(date).format('YYYY-MM-DD')
'2022-07-15'
moment(range.end).subtract(1, 'days').format('YYYY-MM-DD')
'2022-07-15'

why then:

moment(date) <= moment(range.end).subtract(1, 'days')

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

enter image description here

what should be the proper way compare this days for date being equal, gt, lt using momentjs?

UPDATE:

using isSameOrBefore after having both dates wrapped in moment:

date.format('YYYY-MM-DD')
'2022-07-15'
range.end
'2022-07-16'
moment(date).format('YYYY-MM-DD')
'2022-07-15'
moment(range.end).subtract(1, 'days').format('YYYY-MM-DD')
'2022-07-15'
moment(date).isSameOrBefore(moment(range.end).subtract(1, 'days'))
false

I guess I got it:

moment(date).isSameOrBefore(moment(range.end).subtract(1, 'days'), 'day')

providing level of granularity of check to day seems to do the trick.

docs

As the second parameter determines the precision, and not just a single value to check, using day will check for year, month and day.

>Solution :

Moment gives us isBefore, isAfter, isSame, isSameOrBefore etc. to make these comparisons.

var a = moment().format('YYYY-MM-DD')

var b = moment().subtract(1, 'days').format('YYYY-MM-DD')

console.log(moment(a).isAfter(b));
console.log(moment(a).isBefore(b));
console.log(moment(a).isSameOrBefore(b));
// sometimes you may want to provide precision level of comparision like this:
console.log(moment(a).isSameOrBefore(b, 'day'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading