方法一:
new Date()第3个参数默认为1,就是每个月的1号,把它设置为0时, new Date()会返回上一个月的最后一天,然后通过getDate()方法得到天数
function getMonthDay(year,month) {
let days = new Date(year, month + 1, 0).getDate();
console.log(days);
return days;
}
getMonthDay(2023,1) //28
方法二:
可以把每月的天数写在数组中,再判断时闰年还是平年确定2月分的天数
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
}
console.log(days[month]);
return days[month]
}
getDays(2023,0) // 31
方法三:
function getMonthDays (myMonth){
let monthStartDate = new Date(new Date().getFullYear(), myMonth, 1);
let monthEndDate = new Date(new Date().getFullYear(), myMonth + 1, 1);
let days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
console.log(days);
return days;
}
getMonthDays(0) // 31
方法四:
getDate()
today.getMonth() + 1,加 1 得到当前月份
new Date(today.getFullYear(), today.getMonth(), 0);
得到当前的年份,月份,0代表 today.getMonth()月1号的前一天。
date = new Date(2017,11,0);//表示date是2017/12/1号的前一天,就是2017/11/30这天
通常用new Date(2020,2,0).getDate()计算某月的天数
var today = new Date();
// 获取当月天数 curretMonthDayCount
var curretMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0);
var curretMonthDayCount = curretMonth.getDate();
// 获取上个月天数 preMonthDayCount
var preMonth = new Date(today.getFullYear(), today.getMonth(), 0);
var preMonthDayCount = preMonth.getDate();
// 获取前一个月天数
var beforePreMonth = new Date(today.getFullYear(), today.getMonth() - 1, 0);
var beforePreMonthDayCount = beforePreMonth.getDate();