Javascript Html5日期控制问题:在12月的某个特定日期加上3天,将返回js中的下一个月1月
我有一个日期对象,我正在根据用户从下拉日历中选择的值设置该对象。我想在所选对象上添加3天。它在所有月份都运转良好,除了12月。如果从12月开始选择一个特定日期并添加3天,则返回的月份值为“00”而不是“12” 这是我的密码Javascript Html5日期控制问题:在12月的某个特定日期加上3天,将返回js中的下一个月1月,javascript,Javascript,我有一个日期对象,我正在根据用户从下拉日历中选择的值设置该对象。我想在所选对象上添加3天。它在所有月份都运转良好,除了12月。如果从12月开始选择一个特定日期并添加3天,则返回的月份值为“00”而不是“12” 这是我的密码 var dateinput= document.getElementById("date_picker").value; console.log(dateinput); var timeinput= document.getElementById("t
var dateinput= document.getElementById("date_picker").value;
console.log(dateinput);
var timeinput= document.getElementById("time_picker").value;
var dateobj = dateinput + ' ' +timeinput;
var parts = dateobj.split(/[-\s:]/);
var date = new Date(parts[0],parts[1],parts[2],parts[3],parts[4]);
console.log(parts[1])
date.setDate( date.getDate() + 3);
console.log(date)
var dateobj2 = [date.getMonth(), date.getDate(), date.getFullYear()].map(pad).join('/') +
' ' + [date.getHours(),date.getMinutes()].map(pad).join(':');
下面是代码输出
日期演示
ol{
显示:内联块;
列表样式类型:无;
}
李{
显示:块;
边框:1px纯绿色;
填充物:5px;
}
//从日期选择器设置开始日期
//将daysToAdd设置为3,从所选日期返回接下来的3天
函数显示日期(startDate、daysToAdd){
var aryDates=[];
对于(变量i=0;i“+currentDate.getDate()+”+dayaString(currentDate.getDay())+”(“+fullDate+”)”);
}
返回日期;
}
函数DayaString(dayIndex){
var工作日=[“太阳”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”];
返回工作日[日索引];
}
var startDate=新日期();//document.getElementById('date\u picker')。值
var aryDates=显示日期(起始日期,7);
document.getElementById(“demo”).innerHTML=aryDates.join(“”);
基本上,月份将从00(一月)
开始到11(十二月)
。因此,当用户为12月输入12
时,当您将组件分配给新日期(年、月、日、小时、分钟、秒、毫秒)时,应将其减去1得到11
所以你的代码会变成
var date = new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4]);
您可以查看下面的代码段
函数getDate(){
var dateinput=document.getElementById(“日期选择器”).value;
var timeinput=document.getElementById(“时间选择器”).value;
var dateobj=dateinput+“”+timeinput;
var parts=dateobj.split(/[-\s://);
var日期=新日期(零件[0],零件[1]-1,零件[2],零件[3],零件[4]);
date.setDate(date.getDate()+3);
控制台日志(日期);
}
document.getElementById(“日期选择器”)的值是多少?如何检查月份?通过getMonth
的返回值<代码>11是十二月,0
是一月。没有月份12
。我使用getMonth()获取月份。按如下方式打印。var dateobj2=[date.getMonth(),date.getDate(),date.getFullYear()].map(pad.join('/')+'+[date.getHours(),date.getMinutes()].map(pad.join(':');您正在使用哪个日期选择器和时间选择器?在某种程度上与我正在做的事情相同..date.setDate(date.getDate()+3);谢谢试过了。但现在又回到了11月份(很抱歉,它是否显示11代表12?是的。当我执行-1.:(为什么要输入-1:-)?您应该在拆分nd后验证这一点,并向用户抛出错误。
var date = new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4]);