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

 我来答
匿名用户
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼加橙
2018-05-23
知道答主
回答量:1
采纳率:0%
帮助的人:875
展开全部

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

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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式