Bereken de laatste dag van de maand

Als u 0opgeeft als de dayValuein Date.setFullYear, krijgt u de laatste dag van de vorige maand:

d = new Date(); d.setFullYear(2008, 11, 0); //  Sun Nov 30 2008

Er is een verwijzing naar dit gedrag op mozilla. Is dit een betrouwbare functie voor meerdere browsers of moet ik naar alternatieve methoden kijken?


Antwoord 1, autoriteit 100%

var month = 0; // January
var d = new Date(2008, month + 1, 0);
console.log(d.toString()); // last day in January

Snippet uitvouwen


Antwoord 2, autoriteit 20%

Ik vind dit de beste oplossing voor mij. Laat het object Date het voor je berekenen.

var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);

Het instellen van de dagparameter op 0 betekent één dag minder dan de eerste dag van de maand die de laatste dag van de vorige maand is.


Antwoord 3, autoriteit 15%

Ik zou een tussenliggende datum gebruiken met de eerste dag van de volgende maand en de datum van de vorige dag retourneren:

int_d = new Date(2008, 11+1,1);
d = new Date(int_d - 1);

Other episodes