我试图根据月份变量向日期添加月份,但是当我尝试从输入字段获取月份并传递它时,我得到错误的结果。如果我自己定义一个变量并将其传递给 setMonth,我会得到正确的结果。
这是代码:
当我使用静态值时:
.on('changeDate', function(e){
var datea = new Date(e.date);
console.log(datea);
// var montha = $('#duration').val();
// console.log(montha);
montha = 3 ;
datea.setMonth(datea.getMonth()+ montha);
datea = datea.getDate() + "/" + datea.getMonth() + "/" + datea.getFullYear();
console.log(datea);
$('#end_date').val(datea);
});
控制台输出:
Sat Apr 01 2017 00:00:00 GMT+0530 (India Standard Time)
1/6/2017
如您所见,它打印了正确的输出
但是如果我尝试从输入字段获取月份值
.on('changeDate', function(e){
var datea = new Date(e.date);
console.log(datea);
var montha = $('#duration').val();
console.log(montha);
datea.setMonth(datea.getMonth()+ montha);
datea = datea.getDate() + "/" + datea.getMonth() + "/" + datea.getFullYear();
console.log(datea);
$('#end_date').val(datea);
});
控制台输出:
Sat Apr 01 2017 00:00:00 GMT+0530 (India Standard Time)
3
1/9/2019
即使montha的值为3,输出结果也不正确。
请帮我解决这个问题
最佳答案
我在浏览器控制台中进行了检查,我认为问题可能是由于输入值未转换为数字类型引起的。从下图中,date1 在 setMonth 函数中加 3(数字类型),则得到正确的日期“2017/7/...”。但是,date2 将“3”(字符串类型)添加到 setMonth 函数,然后获取日期“2019/10/...”。
关于JavaScript |使用变量添加月份至今时出现错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43429267/