yyyy vue spanish react moment examples javascript momentjs

javascript - vue - Cómo usar Moment.JS para verificar si la hora actual está entre 2 veces



moment vue (3)

El ejemplo en esa página es

moment(''2010-10-20'').isBetween(''2010-10-19'', ''2010-10-25''); // true

no hay llamada a la función de format como en su código, así que sugiero que intente

moment(''09:34:00'').isBetween(''08:34:00'', ''10:34:00'');

Digamos que la hora actual es 09:34:00 ( hh:mm:ss ), y tengo otras dos veces en dos variables:

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

¿Cómo uso Moment.JS para verificar si la hora actual está entre el tiempo beforeTime y el afterTime ?

He visto isBetween() , y he intentado usarlo como:

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

pero eso no funciona porque tan pronto como formateo el primer momento (hora actual) en una cadena, ya no es un objeto de momento. También he intentado usar:

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''))

pero me sale false , porque nuevamente cuando formateo la hora actual, ya no es un momento.

¿Cómo consigo que esto funcione?


Tuve que usar isBetween y isSame en mi caso para cubrir el tiempo before y after que utilicé en la condición isBetween.

function getTimeCategory(time) { let timeCategory = ''''; const timeFormat = ''HH:mm:ss''; if ( time.isBetween(moment(''00:00:00'', timeFormat), moment(''04:59:59'', timeFormat)) || time.isSame(moment(''00:00:00'', timeFormat)) || time.isSame(moment(''04:59:59'', timeFormat)) ) { timeCategory = ''DAWN''; } else if ( time.isBetween(moment(''05:00:00'', timeFormat), moment(''11:59:59'', timeFormat)) || time.isSame(moment(''05:00:00'', timeFormat)) || time.isSame(moment(''11:59:59'', timeFormat)) ) { timeCategory = ''MORNING''; } else if ( time.isBetween(moment(''12:00:00'', timeFormat), moment(''16:59:59'', timeFormat)) || time.isSame(moment(''12:00:00'', timeFormat)) || time.isSame(moment(''16:59:59'', timeFormat)) ) { timeCategory = ''NOON''; } else if ( time.isBetween(moment(''17:00:00'', timeFormat), moment(''23:59:59'', timeFormat)) || time.isSame(moment(''17:00:00'', timeFormat)) || time.isSame(moment(''23:59:59'', timeFormat)) ) { timeCategory = ''NIGHT''; } return timeCategory; }


  • Puede pasar instancias de momento a isBetween()
  • omita las llamadas format() , lo que desea es pasar formatos de análisis como int en el primer momento () de su segundo intento.

Eso es todo:

var format = ''hh:mm:ss'' // var time = moment() gives you current time. no format required. var time = moment(''09:34:00'',format), beforeTime = moment(''08:34:00'', format), afterTime = moment(''10:34:00'', format); if (time.isBetween(beforeTime, afterTime)) { console.log(''is between'') } else { console.log(''is not between'') } // prints ''is between''