Obtenir la liste des jours entre deux dates avec JavaScript

Concept et utilisation

La fonction datesEveryDay() permet d'itérer une opération sur les jours compris entre deux dates, et d'en obtenir la liste.

Fonction

datesEveryDay()

Exécute une fonction itérative pour chaque jour compris entre deux dates.

Syntaxe
datesEveryDay(date_debut, date_fin, iteration);
Paramètres
date_debut(Date)

Le paramètre date_debut de la fonction datesEveryDay() définit la date de début de l'ensemble de dates.

date_fin(Date)

Le paramètre date_fin de la fonction datesEveryDay() définit la date de fin de l'ensemble de dates.
Si ce paramètre est omis, la date courante sera utilisée.

iteration(Function)

Le paramètre iteration de la fonction datesEveryDay() définit une fonction à exécuter itérativement pour chaque jour d'une période, qui sera passé en argument.

Exemple d'obtention des jours entre deux dates

var date_debut = new Date(1970, 0, 1);
var date_fin = new Date(1970, 0, 3);
var jours = [];

var iteration = function(date) {
  jours.push( date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate() );
};

datesEveryDay(date_debut, date_fin, iteration);

// renvoie : [
//   '1970/1/1',
//   '1970/1/2',
//   '1970/1/3'
// ]

Code source de la fonction

function datesEveryDay(a, b, f) {
  f = f || function(g) {
    return g;
  };
  var x = new Date(a),
      y = b ? new Date(b) : new Date(),
      u = x.getTime(),
      v = y.getTime(),
      c = u > v ? y : x,
      d = v > v ? u : v;
  do {
    f(new Date(c));
    c.setDate(c.getDate() + 1);
  } while (d >= c.getTime());
}
^