How to use Moment.JS to check whether the current time is between 2 times

Viewed 84421

Say the current time is 09:34:00 (hh:mm:ss), and I have two other times in two variables:

var beforeTime = '08:34:00',
    afterTime = '10:34:00';

How do I use Moment.JS to check whether the current time is between beforeTime and afterTime?

I've seen isBetween(), and I've tried to use it like:

moment().format('hh:mm:ss').isBetween('08:27:00', '10:27:00')

but that doesn't work because as soon as I format the first (current time) moment into a string, it's no longer a moment object. I've also tried using:

moment('10:34:00', 'hh:mm:ss').isAfter(moment().format('hh:mm:ss')) && moment('08:34:00', 'hh:mm:ss').isBefore(moment().format('hh:mm:ss'))

but I get false, because again when I format the current time, it's no longer a moment.

How do I get this to work?

4 Answers

I have use moment function combination isSameOrAfter and isSameOrBefore instead of isBetween.

if(moment(currentTime,'HH:mm:ss').isSameOrAfter(moment(shift_dayFrom,'HH:mm:ss')) && 
moment(currentTime,'HH:mm:ss').isSameOrAfter(moment(shift_dayTo,'HH:mm:ss')))
Related