JavaScript日期计算错误导致出现“2023-10-NaN”的解决方法
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 著作权归作者所有。请勿转载和采集!