JS:如何计算一个月有多少天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS:如何计算一个月有多少天相关的知识,希望对你有一定的参考价值。

参考技术A function getCountDays() 
        var curDate = new Date();
        /* 获取当前月份 */
        var curMonth = curDate.getMonth();
       /*  生成实际的月份: 由于curMonth会比实际月份小1, 故需加1 */
       curDate.setMonth(curMonth + 1);
       /* 将日期设置为0, 这里为什么要这样设置, 我不知道原因, 这是从网上学来的 */
       curDate.setDate(0);
       /* 返回当月的天数 */
       return curDate.getDate();

//例如,  获取当前月份(现在是3月)的总天数: 
getCountDays()       // 返回31

参考技术B

看最佳答案的注释,感觉该回答的作者并没有搞明白自己所给出的答案……

其实,整个逻辑很简单的,就是通过下一个月份来获取当前月份的最后一天即当前月份的天数。

所以,最佳答案中,curDate.setMonth(curMonth + 1); 是为了把当前月份日期设置成下一个月份日期,curDate.setDate(0); 是为了通过下一个月份日期获取当前月份日期的最后一天日期,return curDate.getDate(); 是为了返回当前月份日期的最后一天,即当前月份的天数。比如,1月份就是返回31,表示1月份最后一天是31号,也就是1月份总共有31天。

但是,最佳答案中存在一个 bug:比如3月31日直接取下一个月份取到的是5月1日,再进行后续操作就会出错,所以应该先设置为当前月份第一天 curDate.setDate(1);,再进行取月份、设置月份和设置天的操作。

js 获取一个月有多少天的方式

方法一

function getMonthDay(year, month) {
  let days = new Date(year, month + 1, 0).getDate()
  return days
}

new Date()第3个参数默认为1,就是每个月的1号,把它设置为0时, new Date()会返回上一个月的最后一天,然后通过getDate()方法得到天数

new Date()第二个参数设置为1就是2月

方法二

可以把每月的天数写在数组中

再判断时闰年还是平年确定2月分的天数

闰年条件:...

function getDays(year, month) {
   let days = [31,28,31,30,31,30,31,30,30,31,30,31] 
  if ( (year % 4 ===0) && (year % 100 !==0 || year % 400 ===0) ) {
        days[1] = 29
  }
  return days[month] }

  

以上是关于JS:如何计算一个月有多少天的主要内容,如果未能解决你的问题,请参考以下文章

js 获取一个月有多少天的方式

JS 输入年份,再输入月份,弹出这个月有多少天?

python中一个月有多少天

js根据年月计算出这个月有多少周

pgsql怎么计算一个月有多少周

js实现倒数 —— ‘剩下多少天多少秒’