2009-12-03 42 views
0

我有這個片段:的Javascript添加日期問題

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(); 

我的目標是,通過添加從DATE11天date2的自動初始化值。 然而,當我填寫:

day1 = 32 
month1 = 1 
year1 = 2009 

我:

day1 = 5 
month1 = 2 
year1 = 2009 

我不知道是怎麼回事。你們知道解決方案嗎?

回答

2

JavaScript Date對象將月份處理爲基於零的數字(0-Jan,1-Feb,...,11-Dec)。你

也可以problemsset方法,我會建議你使用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); 
+0

你能告訴我更多,那會是什麼問題? – ariefbayu 2009-12-03 06:38:27

+0

順便說一句,謝謝你的解決方案! – ariefbayu 2009-12-03 06:40:02

1
+0

可悲的是,這是行不通的。對於長於或短於24小時(閏年)的天數,它沒有正確計算。例如,在本網站的腳本中,請嘗試此日期:2010年7月7日(2010年11月7日),同時在東部時區。 – 2011-04-22 15:57:12