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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hongweigg/article/details/82183200

    在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

猜你喜欢

转载自blog.csdn.net/hongweigg/article/details/82183200