JavaScript |使用变量添加月份至今时出现错误结果

标签 javascript date datepicker

我试图根据月份变量向日期添加月份,但是当我尝试从输入字段获取月份并传递它时,我得到错误的结果。如果我自己定义一个变量并将其传递给 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/...”。

enter image description here

关于JavaScript |使用变量添加月份至今时出现错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43429267/

相关文章:

JavaScript 暂停

javascript - 有条件地阻止移动 safari 中的滚动/触摸移动事件

javascript - 如何将隐藏的<dl>元素一个一个显示或者同时全部显示?

php - 在页面上显示日期

javascript - 如何在 npm 脚本中将 pug(jade) 渲染为 html?

java - Groovy 中的日期格式

java - 将 java 日期转换为 Javascript 日期

android - 在Android中更改默认日期选择器的样式

android - 选择日期后,它显示错误的月份

angularjs - Angular UI DatePicker 调整时区