我有一個HTML5日期選擇器,我想在按鈕上點擊更改值。如何增加/減少HTML5日期選擇器值?
<input type="date" id="datepicker" />
<button onclick="nextDay()">next</button>
我方法因爲該值是一個字符串,是解析它日期,並操作,後,將其轉換回字符串。但我的問題是,日期的月份,是從0到11,而日期選擇的月份是從1到12
代碼:
// get the value
function getDatepicker() {
// get
var string = datepicker.val();
var date;
// verify the string is a valid date
if (isNaN(Date.parse(string))) {
// invalid date, get today()
date = new Date();
} else {
// String to Date
date = new Date(string);
}
return date;
}
// operate
function addDays(date, days) {
date.setDate(new Date(date.getDate() + days));
return date;
}
// set the value
function setDatepicker(date) {
function addZero(num) {
return ('0' + num).slice(-2);
}
date.setMonth(date.getMonth() +1);
var day = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();
var string = [year, addZero(month), addZero(day)].join('-');
datepicker.val(string);
}
var date = getDatepicker();
addDays(date,-1);
setDatepicker(date);
顯然,由於轉換時的日期選擇器的初始值是正確的,到日期,它正確,但將日期轉換爲datepicker值時,它將減去一個月。 它的工作原理,從日常細微,但卻未能改變了一個月的時候,例如:
開始日期= 2017年1月4日-1day = 31/3/2017 +1個月= 2017年1月5日
然後下一次我拿到日期選擇器的值,將是2017年1月5日-1月,我將處於一個無限循環。
有人可以請說明如何解決這個問題嗎? 在此先感謝!
PS:TL;博士粗體:)
爲什麼不只是發佈你的實際代碼這樣做? – christo8989
@ christo8989因爲它太雜亂了,那些可以回答的人可能不需要它。 – Dane411
錯字:'var day = date.getDate();' – butterFlyNick