今天有個需求,想要獲取指定月的時間段,比如 2020-9-1到2020-9-30,由於存在大月小月的問題,天數存在30和31的2種還有2月份,所以需要想辦法處理下
剛開始我使用比較笨的方法來解決,即將2020-9-1的Date對象先加一個月,然后再減1天,但是這樣感覺比較蠢
后來在網上看見new Date(year,month,day)時,給day傳值為0時,好像就能獲取月份的最后一天
但是實際使用中我發現,day為0時,得到的並不是傳入的month月的最后一天,而是month-1月的最后一天
比如咱們傳入new Date(2020,8,0)想象着得到2020年9月30號(js的month從0開始的),但是實際會得到 2020年8月31,這個8,0好像應該理解成9月0號,比9月1號少一天,所以就等同於8月31號了
<script> function test() { console.log(new Date(2020, 8, 1, 23, 59, 59)); //2020年9月1號 console.log(new Date(2020, 8, 0, 23, 59, 59)); //2020年8月31號 console.log(new Date(2020, 9, 0, 23, 59, 59)); //2020年9月30號 } test(); </script>