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:如何计算一个月有多少天的主要内容,如果未能解决你的问题,请参考以下文章