Saltar al contenido

Iterar a través de un rango de fechas en NodeJS

Si encuentras algún detalle que no entiendes puedes dejarnos un comentario y haremos todo lo posible de ayudarte tan rápido como podamos.

Solución:

Puede usar moment.js en una aplicación node.js.

npm install moment

Entonces puedes hacer esto muy fácilmente:

var moment = require('moment');

var a = moment('2013-01-01');
var b = moment('2013-06-01');

// If you want an exclusive end date (half-open interval)
for (var m = moment(a); m.isBefore(b); m.add(1, 'days')) 
  console.log(m.format('YYYY-MM-DD'));


// If you want an inclusive end date (fully-closed interval)
for (var m = moment(a); m.diff(b, 'days') <= 0; m.add(1, 'days')) 
  console.log(m.format('YYYY-MM-DD'));

Hmmm... esto se parece mucho al código que ya escribiste en tu propia respuesta. Moment.js es una biblioteca más popular que tiene toneladas de funciones, pero me pregunto cuál funciona mejor. Tal vez puedas hacer una prueba y avisarnos. 🙂

Pero ninguno de estos hace tanto como JodaTime. Para eso, necesita una biblioteca que implemente TZDB en JavaScript. Enumero algunos de ellos aquí.

Además, tenga cuidado con los problemas con las fechas de JavaScript en general. Esto también afecta a NodeJS.

Propondría un cambio a la respuesta anterior de Matt. Su código provocará una mutación en el a objeto. prueba esto...

var moment = require('moment');
var a = moment('2013-01-01');
var b = moment('2013-06-01');

for (var m = moment(a); m.isBefore(b); m.add(1, 'days')) 
    console.log(m.format('YYYY-MM-DD'));

Recuerda dar difusión a este ensayo si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *