方法一
通过设置下个月的第一天,然后减去一天
function getDaysInMonth(year, month) {
const nextMonthFirstDay = new Date(year, month + 1, 1);
nextMonthFirstDay.setDate(0);
return nextMonthFirstDay.getDate();
}
const days = getDaysInMonth(2024, 8);
console.log(days);
方法二:
利用getMonth方法的特性
function getDaysInMonth(year, month) {
const firstDay = new Date(year, month, 1);
let day = 1;
while (firstDay.getMonth() === month) {
firstDay.setDate(day);
day++;
}
return day - 1;
}
15const days = getDaysInMonth(2024, 8);
16console.log(days);
方法三
平闰年+月份数组计算
function getDays(year, month) {
let days = [31,28,31,30,31,30,31,31,30,31,30,31]
if ( (year % 4 ===0) && (year % 100 !==0 || year % 400 ===0) ) {
days[1] = 29
}
return days[month]
}
const days = getDays(2024, 8);
console.log(days);
方法四
new Date()设置为0
function getMonthDay(year, month) {
let days = new Date(year, month + 1, 0).getDate();
return days;
}
const days = getMonthDay(2024, 8);
console.log(days);