var month = 0; // January
var d = new Date(2008, month + 1, 0);
console.log(d.toString()); // last day in January
IE 6: Thu Jan 31 00:00:00 CST 2008
IE 7: Thu Jan 31 00:00:00 CST 2008
IE 8: Beta 2: Thu Jan 31 00:00:00 CST 2008
Opera 8.54: Thu, 31 Jan 2008 00:00:00 GMT-0600
Opera 9.27: Thu, 31 Jan 2008 00:00:00 GMT-0600
Opera 9.60: Thu Jan 31 2008 00:00:00 GMT-0600
Firefox 2.0.0.17: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Firefox 3.0.3: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Google Chrome 0.2.149.30: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Safari for Windows 3.1.2: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Les différences de production sont dues à des différences dans la toString()
et non parce que les dates sont différentes.
Bien sûr, le fait que les navigateurs identifiés ci-dessus utilisent 0 comme dernier jour du mois précédent ne signifie pas qu'ils continueront à le faire, ou que les navigateurs non listés le feront, mais cela donne de la crédibilité à l'idée que cela devrait fonctionner de la même manière dans tous les navigateurs.
0 votes
Vous ne voulez pas dire le dernier jour du mois spécifié ? Il y a 30 jours en novembre et 31 en octobre.
21 votes
Les mois sont basés sur zéro en javascript, donc 11 est décembre.
3 votes
@TheCloudlessSky - essayez-le dans votre console... (2008,11,0) est le zéro jour de décembre, et donc le dernier jour de novembre.
0 votes
@Ken - Oui - je n'avais pas réalisé qu'il y avait un "0" :)... il était trop tôt le matin.