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