一般的做法是先判斷是幾月份,然後決定有多少天(一般用switch),如果是2月的話,還得判斷選擇的年份是不是閏年,再決定是28天還是29天。這樣是一個很規矩的做法,而且也很符合邏輯。
但是,如果是為了達到目的的話,是不用這麼麻煩的。JS裡面的new Date("xxxx/xx/xx")這個日期的構造方法有一個妙處,當你傳入的是"xxxx/xx/0"(0號)的話,得到的日期是"xx"月的前一個月的最後一天("xx"月的最大取值是69,題外話),如果傳入"1999/13/0",會得到"1998/12/31"。而且最大的好處是當你傳入"xxxx/3/0",會得到xxxx年2月的最後一天,它會自動判斷當年是否是閏年來返回28或29,不用自己判斷,太方便了!!所以,我們想得到選擇年選擇月有多少天的話,只需要
複製代碼 代碼如下:
var temp=new Date("選擇年/選擇月+1/0");
alert(temp.getDate());
就可以了,是不是很方便?校正的話,也可以用這個方法。
下面是使用JS編寫的擷取某年某月有多少天的getDaysInMonth(year, month)方法:
複製代碼 代碼如下:
function getDaysInMonth(year,month){
month = parseInt(month,10)+1;
var temp = new Date(year+"/"+month+"/0");
return temp.getDate();
}
下面是簡單的測試代碼:
<script> function getDaysInMonth(year,month){ month = parseInt(month,10)+1; var temp = new Date(year+"/"+month+"/0"); return temp.getDate(); } alert(getDaysInMonth("2009","11")); </script>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]