最近看到一個有意思的試題,正好在需求中也碰到類似的問題,即計算某個月的天數問題。碰到類似問題也許大部分會想是不是還要判斷閏年、平年,如果這樣想的話就復雜了,下面給出具體的計算方法。
獲取月份天數方法一:
//傳入年份和月份 獲取該年對應月份的天數function getMonthDays(year,month){ var thisDate = new Date(year,month,0); //當天數為0 js自動處理為上一月的最后一天 return thisDate.getDate();}
上面應該時獲取月份天數最簡單的方法之一了,當Date中參數超出范圍時js會自動處理,如果傳值小于等于0,則日期將會向前推,否則日期將會向后推。下面時MDN原文,也提到了此現象:
Note: 當Date作為構造函數調用并傳入多個參數時,如果數值大于合理范圍時(如月份為13或者分鐘數為70),相鄰的數值會被調整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它們都表示日期2014-02-01(注意月份是從0開始的)。其他數值也是類似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示時間2013-03-01T01:10:00。
下面給出幾個例子供參考:
1.參數傳入負數
2.傳入大于規定范圍的值
以上可看出,js本身對日期處理還是比較好的,同時開發人員也可以利用這一點獲取想要的結果。
獲取月份天數方法一:
下面就是比較正常的獲取方式了,代碼:
//根據兩個月份同一天的差值獲取,同樣是傳入需要獲取的對應年份和月份function getMonthDays(year,month){ var stratDate = new Date(year,month-1,1), endData = new Date(year,month,1); var days = (endData -stratDate)/(1000*60*60*24); return days;}
第二種方式則是根據所求月份和下一個月份某一天的差值獲取對應月份的天數。
總結
以上所述是小編給大家介紹的JS獲取指定月份的天數兩種方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答