JavaScript日期计算错误导致出现“2023-10-NaN”的解决方法

在使用JavaScript进行日期计算时,如果使用new Date(yearMonth, 0)来获取指定年月的最后一天,可能会出现“2023-10-NaN”这样的错误结果。

这是因为new Date(yearMonth, 0)方法实际上是创建了一个新的Date对象,其月份为0(也就是一月),而日期默认为1。因此,如果年份是2023年,那么new Date(yearMonth, 0)会创建一个2023年1月1日的日期对象。

解决方法

要正确地获取指定年月的最后一天,可以使用以下代码:

let lastDayOfMonth = new Date(yearMonth, 0, 0);

这段代码创建了一个新的Date对象,其年份和月份与目标日期相同,而日期设置为0。由于日期设置为0,JavaScript会自动将其调整为该月份的最后一天。

例如,如果yearMonth为“2023-10”,那么new Date(yearMonth, 0, 0)会创建一个2023年10月31日的日期对象。

代码示例

以下是一个完整的代码示例,演示了如何使用正确的代码获取最后一天的日期:

// 获取当前日期的年月
var yearMonth = this.reportingPeriodDate.substring(0, 7);

// 获取指定年月的最后一天
let lastDayOfMonth = new Date(yearMonth, 0, 0);

// 获取最后一天的日期
let lastDay = lastDayOfMonth.getDate();

// 设置收入期间的结束日期
this.form.incomePeriodDateEnd = `${yearMonth}-${lastDay}`;

通过使用new Date(yearMonth, 0, 0)来获取最后一天的日期,可以避免出现“2023-10-NaN”的错误结果,并确保代码能够正确地计算日期。


原文地址: https://www.cveoy.top/t/topic/pmub 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录