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 fonctiondatesEveryDay()
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());
}
Dernière mise à jour le .