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
不用判断闰年了,是不是很方便啊。哈哈。
以上是关于javascript获取当月有多少天的疑问的主要内容,如果未能解决你的问题,请参考以下文章