Obtenir la liste des mois entre deux dates avec JavaScript
Concept et utilisation
La fonction datesEveryMonth()
permet d'itérer une opération sur les mois compris entre deux dates, et d'en obtenir la liste.
Fonction
datesEveryMonth()
Exécute une fonction itérative pour chaque mois compris entre deux dates.
- Syntaxe
datesEveryMonth(date_debut, date_fin, iteration);
- Paramètres
date_debut
(Date)Le paramètre
date_debut
de la fonctiondatesEveryMonth()
définit la date de début de l'ensemble de dates.date_fin
(Date)Le paramètre
date_fin
de la fonctiondatesEveryMonth()
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 fonctiondatesEveryMonth()
définit une fonction à exécuter itérativement pour chaque mois compris entre les deux dates, qui sera passé en argument.
Exemple d'obtention des mois compris entre deux dates
var date_debut = new Date(1970, 0, 1);
var date_fin = new Date(1970, 2, 1);
var dates = [];
var iteration = function(date) {
mois.push( date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate() );
};
datesEveryMonth(date_debut, date_fin, iteration);
// renvoie : [
// '1970/1',
// '1970/2',
// '1970/3'
// ]
Code source de la fonction
function datesEveryMonth(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.setMonth(c.getMonth() + 1);
} while (d >= c.getTime());
}
Dernière mise à jour le .