我有2个输入,我正在使用Javascript获取日期。在第一个输入中我想添加14天(2周)和第二个21天(3周)。如果日期超过月份,则月份不会更改。
例如:
如果日期是2011年10月13日,我又增加了21天,那就是2011年10月3日而不是11月。
我该如何解决这个问题?
这是一个有效的例子:http://jsfiddle.net/2CKyL/
请注意,我想将其格式化为DD / MM / YY。
答案 0 :(得分:0)
var month2 = b.getMonth() + 1;
$(".input2").val(b.getDate() + "/" + month2 +"/" + b.getFullYear());
您正在month
重新使用input2
,但月份是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
),两个 month
变量!
答案 1 :(得分:0)
您可以使用modulo和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());
});