javascript 当前月份的第一个日期和最后一个日期

First Date and Last date in current month in javascript

var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
    var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

有人可以解释一下这段代码为什么我们在 firstDay 和 in 中给出 1 并且在 lastDay 中给出 +1,0 它会是什么做.....我知道它会给出我需要的第一个日期和最后一个日期,为什么我们要使用它...

JavaScript的Date对象在处理invalid days/months方面相当聪明:它可以让你指定invalid days,months等,通过"wrapping" 到 next/previous 月、年等

所以在上面,这一行:

var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

...为 下一个 月 (date.getMonth() + 1) 创建一个日期,但该月的第 0 天。天数从 1 开始,而不是 0,因此 Date 对象计算出它应该倒退到某一天——这给了你上个月的月底。

在该示例中,Date constructor uses the specification's abstract operation MakeDay 定义了此行为。

这是我们在 JavaScript 中为日期使用的构造函数之一。

new Date(year, month, day, hours, minutes, seconds, milliseconds)

所以第一个语句中的 1 将日期设置为 1。

至于第二条语句,getMonth() 函数 returns 的值从 0 到 11。所以当我们执行 getMonth() + 1 时,我们让它转到下个月。然后当我们使用 day 参数作为 0 时,我们强制它移回上个月的最后一天。