Cómo calcular el número de días entre dos fechas en JavaScript

📅 22/01/2025 👤 Julio Fuente 📂 programar

Main Image

Tuve este problema: ¿cómo calculo el número de días entre 2 fechas?

En particular, quería contar el número de noches que una persona tenía que pagar para alquilar una casa y dormir en ella, dependiendo de la fecha de entrada y la fecha de salida.

Analicé diferentes soluciones y la que menos problemas me dio, teniendo en cuenta todos los problemas con las fechas (incluido el horario de verano), fue esta: a partir de la fecha de inicio, sumamos un día hasta que la fecha represente una fecha posterior a la fecha de finalización.

Aquí está el código:

const numberOfNightsBetweenDates = (startDate, endDate) = {  const start = new Date(startDate) //clone  const end = new Date(endDate) //clone  let dayCount = 0  while (end  start) {    dayCount++    start.setDate(start.getDate() + 1)  }  return dayCount}

Primero clono las fechas que nos dan, porque las fechas son objetos y obtenemos una referencia a ese objeto. Esto significa que usar setDate()dentro de la función también afectaría a la variable fuera de esta función, ¡algo que no esperamos con ansias!

Eso es todo.

Si, en cambio, desea obtener la cantidad de días entre dos fechas (por ejemplo, de hoy a mañana hay 2 días), simplemente cambie while (end start)a while (end = start). Eso funcionaría. O aumente el dayCountpunto de partida a 1.

Tips para principiantes de JavaScript




Tal vez te puede interesar:

  1. Cómo generar un número aleatorio entre dos números en JavaScript
  2. Cómo esperar el evento DOM listo en JavaScript simple
  3. Cómo determinar si una fecha es hoy en JavaScript
  4. Cómo contar el número de propiedades en un objeto JavaScript

Créditos de la imagen http://dbbeebom