Javascript 在get date+天,如果超过一个月,该月不会增加?

Javascript 在get date+天,如果超过一个月,该月不会增加?,javascript,datetime,Javascript,Datetime,我有2个输入,我用Javascript获取日期。在第一次输入时,我想添加14天2周,在第二次输入时添加21天3周。如果日期超过了月份,则月份不变 例如: 如果日期是2011年10月13日,我再加上21天,则改为2011年10月3日,而不是11月 我怎样才能解决这个问题 这是一个工作示例: 请注意,我想将其格式化为DD/MM/YY var month2 = b.getMonth() + 1; $(".input2").val(b.getDate() + "/" + month2 +"/" + b

我有2个输入,我用Javascript获取日期。在第一次输入时,我想添加14天2周,在第二次输入时添加21天3周。如果日期超过了月份,则月份不变

例如:

如果日期是2011年10月13日,我再加上21天,则改为2011年10月3日,而不是11月

我怎样才能解决这个问题

这是一个工作示例:

请注意,我想将其格式化为DD/MM/YY

var month2 = b.getMonth() + 1;

$(".input2").val(b.getDate() + "/" + month2 +"/" + b.getFullYear());
您在重复使用月份输入2,但月份是a月份

更清楚地说:

var a = new Date(+new Date + 12096e5);
var b = new Date(+new Date + 18144e5);

var month = a.getMonth() + 1;
// Here calc month2

$(".input1").val(a.getDate() + "/" + month +"/" + a.getFullYear());
$(".input2").val(b.getDate() + "/" + month +"/" + b.getFullYear());

两个日期a和b,两个月变量

您可以使用模和getLastDayOfMonth函数执行此操作:

Date.prototype.getLastDayOfMonth = function() {
    return new Date(new Date(this.getFullYear(), this.getMonth() + 1, 0)).getDate();
};

$('input[type=button]').click(function() {
    var days = Math.random() + 100 | 0 + 30; // just a random number, nothing more
    a.setDate(a.getDate() + days % a.getLastDayOfMonth());
    $(".input1").val(a.getDate() + "/" + month + "/" + a.getFullYear());
});

这里没有什么值得感谢的。除了詹姆斯·麦克内利斯。你用的是什么浏览器?您有一些简单的示例代码可以共享吗?@Anirvan该代码已经在jsfiddleAh中链接。我想如果超过一个月或不超过一个月的话,我的约会就会增加!非常感谢