Alex Rivera | Logout

What is the best way to determine the number of days in a month with JavaScript?

Asked 2008-11-24T22:41:05.143
139

I've been using this function but I'd like to know what's the most efficient and accurate way to get it.

function daysInMonth(iMonth, iYear) {
   return 32 - new Date(iYear, iMonth, 32).getDate();
}
Edit
Report

1 Answer

7

If you call this function often, it may be useful to cache the value for better performance.

Here is caching version of FlySwat's answer:

var daysInMonth = (function() {
    var cache = {};
    return function(month, year) {
        var entry = year + '-' + month;

        if (cache[entry]) return cache[entry];

        return cache[entry] = new Date(year, month, 0).getDate();
    }
})();
answered 2011-03-29T11:44:50.020

Your Answer