Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html5日期控制问题:在12月的某个特定日期加上3天,将返回js中的下一个月1月_Javascript - Fatal编程技术网

Javascript Html5日期控制问题:在12月的某个特定日期加上3天,将返回js中的下一个月1月

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

我有一个日期对象,我正在根据用户从下拉日历中选择的值设置该对象。我想在所选对象上添加3天。它在所有月份都运转良好,除了12月。如果从12月开始选择一个特定日期并添加3天,则返回的月份值为“00”而不是“12

这是我的密码

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