javascript获取当月有多少天的疑问

Posted

tags:

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

下面是一个网上的算法
getMonthLen:function(year,month) //获取当月总共有多少天
var nextMonth = new Date(year,month+1,1); //获取下个月的第一天
nextMonth.setHours(nextMonth.getHours() - 3); //由于获取的天是0时,所以减去3小时则可以得出该月的天数
return nextMonth.getDate(); //返回当天日期
,

为什么要通过下个月来推算当月,直接取当月的天数取不出来吗?
为什么要减3 减2或者减1可以不?

javascript获取当月的天数:

var d = new Date();
//d.getMonth()+1代表下个月,月份索引从0开始,即当前月为6月时,getMonth()返回值为5,创建日期时同理
//此处构造的日期为下个月的第0天,天数索引从1开始,第0天即代表上个月的最后一天
var curMonthDays = new Date(d.getFullYear(), (d.getMonth()+1), 0).getDate();
alert("本月共有 "+ curMonthDays +" 天");
参考技术A 还有一种思路,每个月的总天数是固定的,你可以存到数组里,然后获取当前的月份,根据当前的月份查询数组就行了,不过2月份得单独考虑一下。 参考技术B 不能直接获取到当月的天数。

可以减大于0或小于24的数。追问

那这个算法岂不是返回了下个月的天数?

追答

不会啊,减了之后date对象会自动变成上个月。

var date = new Date('2013', '2', '1');
alert(date); // 2013/3/1
date.setHours(date.getHours() - 3);
alert(date); // 2013/2/28

var date = new Date('2012', '2', '1');
alert(date); // 2012/3/1
date.setHours(date.getHours() - 3);
alert(date); // 2012/2/29

不用判断闰年了,是不是很方便啊。哈哈。

本回答被提问者采纳
参考技术C 楼上说的很对

以上是关于javascript获取当月有多少天的疑问的主要内容,如果未能解决你的问题,请参考以下文章

PHP DATE 如何取得当月的第一天和最后一天

java中如何获取某个日期是当月的最后一天

java 根据日期获取当月所有日期,和 上个月所有日期

用SQL获取某个某年某个月份的最后一天的日期

JQ JS 获取当月有多少天。

java获取每个月最后一天的日期