JS獲取指定月份的天數(shù)兩種實(shí)現(xiàn)方法
最近看到一個(gè)有意思的試題,正好在需求中也碰到類似的問(wèn)題,即計(jì)算某個(gè)月的天數(shù)問(wèn)題。碰到類似問(wèn)題也許大部分會(huì)想是不是還要判斷閏年、平年,如果這樣想的話就復(fù)雜了,下面給出具體的計(jì)算方法。
獲取月份天數(shù)方法一:
//傳入年份和月份 獲取該年對(duì)應(yīng)月份的天數(shù) function getMonthDays(year,month){ var thisDate = new Date(year,month,0); //當(dāng)天數(shù)為0 js自動(dòng)處理為上一月的最后一天 return thisDate.getDate(); }
上面應(yīng)該時(shí)獲取月份天數(shù)最簡(jiǎn)單的方法之一了,當(dāng)Date中參數(shù)超出范圍時(shí)js會(huì)自動(dòng)處理,如果傳值小于等于0,則日期將會(huì)向前推,否則日期將會(huì)向后推。下面時(shí)MDN原文,也提到了此現(xiàn)象:
Note: 當(dāng)Date作為構(gòu)造函數(shù)調(diào)用并傳入多個(gè)參數(shù)時(shí),如果數(shù)值大于合理范圍時(shí)(如月份為13或者分鐘數(shù)為70),相鄰的數(shù)值會(huì)被調(diào)整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它們都表示日期2014-02-01(注意月份是從0開(kāi)始的)。其他數(shù)值也是類似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示時(shí)間2013-03-01T01:10:00。
下面給出幾個(gè)例子供參考:
1.參數(shù)傳入負(fù)數(shù)
2.傳入大于規(guī)定范圍的值
以上可看出,js本身對(duì)日期處理還是比較好的,同時(shí)開(kāi)發(fā)人員也可以利用這一點(diǎn)獲取想要的結(jié)果。
獲取月份天數(shù)方法一:
下面就是比較正常的獲取方式了,代碼:
//根據(jù)兩個(gè)月份同一天的差值獲取,同樣是傳入需要獲取的對(duì)應(yīng)年份和月份 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; }
第二種方式則是根據(jù)所求月份和下一個(gè)月份某一天的差值獲取對(duì)應(yīng)月份的天數(shù)。
總結(jié)
以上所述是小編給大家介紹的JS獲取指定月份的天數(shù)兩種方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JS獲取月份最后天數(shù)、最大天數(shù)與某日周數(shù)的方法
- JS獲取月的最后一天與JS得到一個(gè)月份最大天數(shù)的實(shí)例代碼
- JavaScript實(shí)現(xiàn)日期格式化的方法匯總
- Javascript將字符串日期格式化為yyyy-mm-dd的方法
- Javascript日期格式化format函數(shù)的使用方法
- Javascript將JSON日期格式化
- AngularJS 日期格式化詳解
- javascript中Date format(js日期格式化)方法小結(jié)
- JavaScript之通過(guò)年月獲取月份的天數(shù)、日期格式化、時(shí)間、補(bǔ)零、Date、toLocaleString、Intl、DateTimeFormat、format(問(wèn)題總結(jié))
相關(guān)文章
JS URL傳中文參數(shù)引發(fā)的亂碼問(wèn)題
今天的項(xiàng)目中碰到了一個(gè)亂碼問(wèn)題,從JS里傳URL到服務(wù)器,URL中有中文參數(shù),服務(wù)器里讀出的中文參數(shù)來(lái)的全是“?”,查了網(wǎng)上JS編碼相關(guān)資料得以解決。2009-09-09js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法
這篇文章主要介紹了js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法,涉及javascript鍵盤事件的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05用js實(shí)現(xiàn)圖片旋轉(zhuǎn)的兩種方案
這篇文章主要給大家介紹了關(guān)于用js實(shí)現(xiàn)圖片旋轉(zhuǎn)的兩種方案, 旋轉(zhuǎn)的效果就是根據(jù)鼠標(biāo)的的移動(dòng)距離來(lái)顯示不同的圖片,形成視覺(jué)差,仿佛就是在正真的旋轉(zhuǎn),需要的朋友可以參考下2023-07-07webpack5新特性Asset?Modules資源模塊詳解
這篇文章主要為大家介紹了webpack5新特性Asset?Modules資源模塊詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03在IE中調(diào)用javascript打開(kāi)Excel的代碼(downmoon原作)
在IE中調(diào)用javascript打開(kāi)Excel的代碼(downmoon原作)...2007-04-04JavaScript中Object.values()的用法舉例
這篇文章主要給大家介紹了關(guān)于JavaScript中Object.values()的用法舉例,Object.values()是JavaScript中一個(gè)內(nèi)置的靜態(tài)函數(shù),用于返回一個(gè)對(duì)象中所有屬性值的數(shù)組,需要的朋友可以參考下2023-09-09