我只想在JavaScript中给定日期添加45个月。一世
 尝试过这个:

var startDateFormat = new Date(2018, 11, 24); // 11 is for January starts from 0
var addDate = startDateFormat.setMonth(startDateFormat.getMonth() + 45); //want to add 45 months
console.log(new Date(addDate).getFullYear() + "-" + new Date(addDate).getMonth() + 1 + "-" + new Date(addDate).getUTCDate())


但是结果是2019-101-23。
有人可以帮助我为什么会这样吗?

最佳答案

您应将new Date(addDate).getMonth() + 1放在括号中。您正在构建一个字符串,并且由于没有提供明确的优先级,因此首先添加新的Date(addDate).getMonth(),然后将1连接到该字符串。

尝试这个:



var startDateFormat = new Date(2018, 11, 24);

var addDate = startDateFormat.setMonth(startDateFormat.getMonth() + 45);

console.log(new Date(addDate).getFullYear() + "-" + (new Date(addDate).getMonth() + 1) + "-" + new Date(addDate).getUTCDate())





或模板字符串:



var startDateFormat = new Date(2018, 11, 24);

var addDate = startDateFormat.setMonth(startDateFormat.getMonth() + 45);

console.log(`${new Date(addDate).getFullYear()}-${new Date(addDate).getMonth() + 1}-${new Date(addDate).getUTCDate()}`);

08-19 04:22