Here you can find the source of getDaysInMonth()
Date.prototype.getDaysInMonth = function () { return Date.getDaysInMonth(this.getFullYear(), this.getMonth()); };
dateFormat.i18n = { dayNames: [ "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", "Domingo", "Lunes", "Jueves", "Mi?oles", "Jueves", "Viernes", "S?do" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ] ...
Date.prototype.daysInMonth = function () { return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate(); };
Date.prototype.getDaysInMonth = function () { var here = new Date(this.getTime()); here.setDate(32); return 32 - here.getDate(); };
Date.prototype.getDaysInMonth = function () { Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; return Date.daysInMonth[this.getMonth()];
Date.prototype.getDaysInMonth = function() { return Date.getDaysInMonth(this.getFullYear(), this.getMonth()); };
Date.prototype.getDaysInMonth = function () { var m = this.getMonth() + 1, y = this.getFullYear(); return /8|3|5|10/.test(--m) ? 30 : m == 1 ? (!(y % 4) && y % 100) || !(y % 400) ? 29 : 28 : 31; };
Date.getDaysInMonth = function(year, month) { return [ 31, (Date.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ][month]; };
Date.getDaysInMonth = function (year, month) return [31, (Date.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; };
Date.prototype.getDaysInMonthOfYear = function(){ month = this.getMonth(); if(month === 1){ return this.isLeapYear()? 29:28; }else{ if(month>=8){ return month%2? 31:30; }else{ return month%2? 31:30; ...