我有一个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