JS:如何计算一个月有多少天
2个回答
2016-11-14
展开全部
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看最佳答案的注释,感觉该回答的作者并没有搞明白自己所给出的答案……
其实,整个逻辑很简单的,就是通过下一个月份来获取当前月份的最后一天即当前月份的天数。
所以,最佳答案中,curDate.setMonth(curMonth + 1); 是为了把当前月份日期设置成下一个月份日期,curDate.setDate(0); 是为了通过下一个月份日期获取当前月份日期的最后一天日期,return curDate.getDate(); 是为了返回当前月份日期的最后一天,即当前月份的天数。比如,1月份就是返回31,表示1月份最后一天是31号,也就是1月份总共有31天。
但是,最佳答案中存在一个 bug:比如3月31日直接取下一个月份取到的是5月1日,再进行后续操作就会出错,所以应该先设置为当前月份第一天 curDate.setDate(1);,再进行取月份、设置月份和设置天的操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询