Volver a la página principal
jueves 14 noviembre 2024
8

Cómo comprobar si una fecha está dentro de un rango con Moment.js

Verificar si una fecha está dentro de un rango con Moment.js

Para determinar si una fecha se encuentra dentro de un rango de fechas, puedes utilizar el método .isBetween() de Moment.js, que permite comparar una fecha contra dos límites (inicio y fin).

Ejemplo de uso de .isBetween()

1. Instala Moment.js si no lo tienes en tu proyecto:

npm install moment

O agrégalo en HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

2. Verifica si una fecha está dentro del rango con .isBetween():

const fechaInicio = moment("2023-01-01");
   const fechaFin = moment("2023-12-31");
   const fechaAComprobar = moment("2023-07-15");

   const estaDentroDelRango = fechaAComprobar.isBetween(fechaInicio, fechaFin);

   console.log("¿La fecha está dentro del rango?", estaDentroDelRango);
   // Resultado: true

En este ejemplo, isBetween() devuelve true porque la fecha 2023-07-15 está dentro del rango del 1 de enero de 2023 al 31 de diciembre de 2023.

Configuración de inclusividad

Por defecto, .isBetween() excluye los límites de inicio y fin. Puedes cambiar este comportamiento usando un tercer parámetro, que permite especificar inclusividad en las fechas:

  • ")": incluye el inicio, pero excluye el final.
  • "(]": excluye el inicio, pero incluye el final.
  • "[]": incluye ambos límites.

Ejemplo:

const estaDentroDelRangoInclusivo = fechaAComprobar.isBetween(fechaInicio, fechaFin, null, "[]");
console.log("¿La fecha está dentro del rango (inclusive)?", estaDentroDelRangoInclusivo);
// Resultado: true

En este caso, "[]" incluye tanto fechaInicio como fechaFin en el rango de fechas.

Ejemplos adicionales

Para verificar si una fecha es exactamente igual a los límites o si está fuera del rango, puedes combinar .isSameOrAfter() y .isSameOrBefore():

const estaDentro = fechaAComprobar.isSameOrAfter(fechaInicio) && fechaAComprobar.isSameOrBefore(fechaFin);
console.log("¿La fecha está dentro del rango?", estaDentro);
// Resultado: true

Referencia oficial

Para más detalles, puedes consultar la documentación oficial de Moment.js, que incluye información sobre métodos avanzados de comparación y manejo de fechas.

Etiquetas:
javascript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer