js獲得月份的最后一天日期以及其中的坑


今天有個需求,想要獲取指定月的時間段,比如 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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM