327 votes

Obtenir le nombre de jours dans un mois donné en utilisant JavaScript ?

Duplicata possible :
Quelle est la meilleure façon de déterminer le nombre de jours dans un mois avec javascript ?

Disons que j'ai le mois sous forme de chiffre et l'année.

807voto

// Month in JavaScript is 0-indexed (January is 0, February is 1, etc), 
// but by using 0 as the day it will give us the last day of the prior
// month. So passing in 1 as the month number will return the last day
// of January, not February
function daysInMonth (month, year) {
    return new Date(year, month, 0).getDate();
}

// July
daysInMonth(7,2009); // 31
// February
daysInMonth(2,2009); // 28
daysInMonth(2,2008); // 29

144voto

kennebec Points 33886
Date.prototype.monthDays= function(){
    var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
    return d.getDate();
}

49voto

Charles Bretana Points 59899

La réponse suivante prend n'importe quelle valeur valide de datetime et renvoie le nombre de jours dans le mois associé... elle élimine l'ambiguïté des deux autres réponses...

 // pass in any date as parameter anyDateInMonth
function daysInMonth(anyDateInMonth) {
    return new Date(anyDateInMonth.getFullYear(), 
                    anyDateInMonth.getMonth()+1, 
                    0).getDate();}

12voto

RYFN Points 1733

Une autre option possible serait d'utiliser Datejs

Alors vous pouvez faire

Date.getDaysInMonth(2009, 9)     

Bien que l'ajout d'une bibliothèque juste pour cette fonction soit exagéré, il est toujours agréable de connaître toutes les options dont vous disposez :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X