Estoy tratando de detectar con Moment.js si una fecha determinada está entre dos fechas. Desde la versión 2.0.0, Tim agregó isBefore()y isAfter()para la comparación de fechas.
Como no hay un isBetween()método, pensé que esto funcionaría:
var date = moment("15/02/2013", "DD/MM/YYYY");
var startDate = moment("12/01/2013", "DD/MM/YYYY");
var endDate = moment("15/01/2013", "DD/MM/YYYY");
if (date.isBefore(endDate)
&& date.isAfter(startDate)
|| (date.isSame(startDate) || date.isSame(endDate))
) {
alert("Yay!");
} else {
alert("Nay! :(");
}
Estoy convencido de que debe haber una mejor manera de hacer esto. ¿Algunas ideas?
javascript
date
momentjs
Joel A. Villarreal Bertoldi
fuente
fuente

isBetween||isStart || isEndRespuestas:
Puede utilizar uno de los complementos de momento -> intervalo de momentos para tratar el intervalo de fechas:
fuente
En las versiones 2.9+ hay una
isBetweenfunción, pero es exclusiva:Hay una solución inclusiva ...
x.isBetween(a, b) || x.isSame(a) || x.isSame(b)... que es lógicamente equivalente a
!(x.isBefore(a) || x.isAfter(b))En la versión 2.13 de la
isBetweenfunción tiene un cuarto parámetro opcional,inclusivity.Úselo así:
Más unidades a considerar:
years, months, days, hours, minutes, seconds, millisecondsNota: las unidades siguen siendo opcionales. Úselo
nullcomo tercer argumento para ignorar las unidades, en cuyo caso milisegundos es la granularidad predeterminada.Visite los documentos oficiales
fuente
x.isBetween(moment(a).subtract(1, 'day'), b)parece hacer el truco también.!(x.isBefore(a) || x.isAfter(b))exclusivesignifica?Puedes usar
o
Ver aquí: http://momentjs.com/docs/#/query/
fuente
isBetweenrequiere el momento 2.13.0. momentjs.com/docs/#/query/is-betweenYo creo que
también funciona ...
fuente
Buenas noticias a todos, ¡hay una
isBetweenfunción! Actualice su biblioteca;)http://momentjs.com/docs/#/query/is-between/
fuente
isBetweenno incluyentemoment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //trueUtilice el cuarto parámetro de la función moment.isBetween (inclusividad). Ejemplo:
fuente
es lógicamente lo mismo que
lo que le ahorra un par de líneas de código y (en algunos casos) llamadas a métodos.
Podría ser más fácil que introducir un complemento completo si solo desea hacer esto una o dos veces.
fuente
Según la documentación del momento js,
Existe el complemento Precise Range, escrito por Rob Dawson, que se puede usar para mostrar representaciones exactas y legibles por humanos de rangos de fecha / hora, url: http://codebox.org.uk/pages/moment-date-range-plugin
fuente