在日期添加日期时出现奇怪的行为

时间:2019-02-28 10:27:20

标签: javascript date

我想在日期上增加一天,但实际上我得到了一个奇怪的结果...

我将今天作为当前日期(2019年2月28日)进行测试,并尝试添加400天,而我现在是2096年...我认为这是一个问题

看看我的功能:

const user = { LastReport: new Date(), Validite: "413" }

var temp = new Date(user.LastReport)
console.log("Current : " + temp);
user.DateValide = temp.setDate(temp.getDate() + user.Validite);
console.log("Day to add : " + user.Validite)
console.log("Result : " + new Date(user.DateValide))

和我的结果:

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:5)

temp.getDate() + user.Validite被串联为字符串,因此添加的日期为28413,而不是441

使用parseInt()将其转换为Number,或者您可以使用+之类的算术运算符作为前缀。

const user = { LastReport: new Date(), Validite: "413" }

var temp = new Date(user.LastReport)
console.log("Current : " + temp);
//user.DateValide = temp.setDate(parseInt(temp.getDate()) + parseInt(user.Validite));
user.DateValide = temp.setDate(+temp.getDate() + +user.Validite);
console.log("Day to add : " + user.Validite)
console.log("Result : " + new Date(user.DateValide))