Javascript 获取某月的开始天和结束天

    在javascript用于日期计算时,常常要获取某月的开始天和结束天,某月的开始天较易获得,因为开始天总是1,但是获取结束天就有点困难了,不仅有大月和小月之分,还要考虑闰年的情况。

    这里有个讨巧的地方,使用new Date(year,month,day)初始化一个日期时,如果day为0,则表示为上月的最后一天,因此利用该特点可以轻松地获取某月的最大天数(最后一天)。

    注意:第2个参数传入时,月是以0开始的,而非1开始,例如求5月的第1天,则月应传入5-1=4,求最后一天时,传入5,表示6月,天传0,表示6月的上一月最后一天(有点绕),看下面的例子。

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>日期测试</title>
</head>

<body>
	<script lang="javascript">
	function println(str){
		document.writeln(str + '<br>');
	}
    	
    function getFirstDayOfMonth(year, month){
    	return new Date(year, month-1, 1);
    }	
	
	function getLastDayOfMonth(year, month){
    	return new Date(year, month, 0);
    }	
	
	function test1(){
		println('2018年5月:' + getFirstDayOfMonth(2018,5) + ',' + getLastDayOfMonth(2018, 5));
		println('2018年2月:' + getFirstDayOfMonth(2018,2) + ',' + getLastDayOfMonth(2018, 2));
		println('2016年2月:' + getFirstDayOfMonth(2016,2) + ',' + getLastDayOfMonth(2016, 2));
		println('2018年4月:' + getFirstDayOfMonth(2018,4) + ',' + getLastDayOfMonth(2018, 4));				
	}
	
	test1();
	
	</script>
</body>

</html>

输出:

2018年5月:Tue May 1 00:00:00 UTC+0800 2018,Thu May 31 00:00:00 UTC+0800 2018
2018年2月:Thu Feb 1 00:00:00 UTC+0800 2018,Wed Feb 28 00:00:00 UTC+0800 2018
2016年2月:Mon Feb 1 00:00:00 UTC+0800 2016,Mon Feb 29 00:00:00 UTC+0800 2016
2018年4月:Sun Apr 1 00:00:00 UTC+0800 2018,Mon Apr 30 00:00:00 UTC+0800 2018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值