我有这个片段:
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
我不知道发生了什么事。你们知道解决方案吗?
答案 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)