function DayNumOfMonth(Year,Month)      //例DayNumOfMonth(2017,05);
{
Month--;                   //月份是0~11。month=4
var d = new Date(Year,Month,1);      //d=Mon May 01 2017 00:00:00 GMT+0800 (中国标准时间);
d.setDate(32);              //Thu Jun 01 2017 00:00:00 GMT+0800 (中国标准时间)
return (32-d.getDate());         //32-1=31
}

 

解析

Date.setDate(day)
  day表示一个月中的一天的一个数值(1 ~ 31):

  • 0 为上一个月的最后一天
  • -1 为上一个月最后一天之前的一天

  如果当月有 31 天:

  • 32 为下个月的第一天

  如果当月有 30 天:

  • 32 为下一个月的第二天