【JavaScript】获取每个月的天数

引用自:https://www.cnblogs.com/hualu...

获取天数

function getDays(year, month) {
    return new Date(year, month, 0).getDate()
}

console.log(getDays(2021, 2, 0)) //28
console.log(getDays(2021, 3, 0)) //31
console.log(getDays(2021, 4, 0)) //30

先来段解释:

1.Date对象月份从0开始,即0表示1月份,以此类推。
2.由于JavaScript中day的范围为1~31中的值,所以当设为0时,会向前 一天,也即表示上个月的最后一天。

再结合代码:

console.log(getDays(2021, 2, 0)) //28

传入的年份是2021年,而2代表了3月份。再传入0表示3月份的第0天,此时会找到上个月的最后一天,也就是2月份的最后一天。所以返回的是2月份的总天数。

再深刻点理解:
就是说,月份需要向后移动1,而每个月的最后一天需要向前移动1。所以传入2021,2,0,拿到的刚好是2月份的总天数。

总结

正常情况我们会先拿到月再做后面的操作;但上述这样利用逆向思维完成的操作就显得更为巧妙。这需要我们对new Date()的方法有深刻的理解。


Keep foolish, keep hungry.

你可能感兴趣的:(javascript,前端)