Javascript添加日期问题

时间:2009-12-03 06:33:12

标签: javascript date

我有这个片段:

var d1 = parseInt( document.getElementById('day1').value );
var m1 = parseInt( document.getElementById('month1').value );
var y1 = parseInt( document.getElementById('year1').value );

var dt = new Date();
dt.setYear(y1);
dt.setMonth(m1);
dt.setDate(d1 + 1);

document.getElementById('day2').value = dt.getDate();
document.getElementById('month2').value = dt.getMonth();
document.getElementById('year2').value = dt.getYear();

我的目标是,通过从date1添加1天来自动初始化date2的值。 但是,当我填写:

 day1 = 32
 month1 = 1
 year1 = 2009

我得到了:

 day1 = 5
 month1 = 2
 year1 = 2009

我不知道发生了什么事。你们知道解决方案吗?

2 个答案:

答案 0 :(得分:2)

JavaScript Date对象将月份作为从零开始的数字处理(0-Jan,1-Feb,...,11-Dec)。

您也可以使用set方法problems,我建议您使用Date constructor

var d1 = +document.getElementById('day1').value;
var m1 = +document.getElementById('month1').value - 1; // zero based!!
var y1 = +document.getElementById('year1').value;

var dt = new Date(y1, m1, d1);

答案 1 :(得分:1)

请参阅Add Days To A JavaScript Date示例。