如何使用javascript操作从html输入获取的日期

如何使用javascript操作从html输入获取的日期,javascript,html,Javascript,Html,我试图从javascript的html输入中获取一个日期,从中减去3年,然后将新日期放回另一个html日期输入字段 我得到了使用当前日期的减法,但是当我从html输入中获取日期时,我无法使它工作 下面是我的代码: <input id="InputDate" data-role="datepicker"/> <input id="OutputDate" data-role="datepicker"/> <script type="text/javascript"&g

我试图从javascript的html输入中获取一个日期,从中减去3年,然后将新日期放回另一个html日期输入字段

我得到了使用当前日期的减法,但是当我从html输入中获取日期时,我无法使它工作

下面是我的代码:

<input id="InputDate" data-role="datepicker"/>
<input id="OutputDate" data-role="datepicker"/>

<script type="text/javascript">
    var dt = new Date(); // this line I want to replace with the next 2 lines!
    //var inDate= document.getElementById("InputDate").value;
    //var dt = new Date(inDate);
    dt.setFullYear(dt.getFullYear() - 3);
    var datestring = ("0" + dt.getDate()).slice(-2) + "." + ("0"+(dt.getMonth()+1)).slice(-2) + "." +  dt.getFullYear();
    document.getElementById("OutputDate").value = datestring;

var dt=新日期();//我想用下两行替换这一行!
//var inDate=document.getElementById(“InputDate”).value;
//var dt=新日期(inDate);
dt.setFullYear(dt.getFullYear()-3);
var datestring=(“0”+dt.getDate()).slice(-2)+“+(“0”+(dt.getMonth()+1)).slice(-2)+“+dt.getFullYear();
document.getElementById(“OutputDate”).value=datestring;
当我从输入字段中获取日期时,我会将“aN.aN.NaN”返回到输出字段中。 我尝试了document.getElementById(“InputDate”).valueAsDate,但这也不起作用。 当我在dt实例化之后放置一个警报(dt)时,我得到“无效日期”

有没有建议如何在DateObject中正确获取获取的日期

你好,马努

使用日期格式

使用日期格式

如果得到类似于
22.12.1985
的InputDate值

如果得到类似于
22.12.1985
的InputDate值

首先验证document.getElementById(“InputDate”).value;是 返回正确日期

首先验证document.getElementById(“InputDate”).value;是 返回正确日期


只需将正确的格式传递给date()函数:

//var dt=new Date();//我想用下两行替换这一行!
var inDate=document.getElementById(“InputDate”).value;
inDate=inDate.分割(“.”);
var dt=新日期(inDate[2],inDate[1],inDate[0]);
//警报(dt);
dt.setFullYear(dt.getFullYear()-3);
var datestring=(“0”+dt.getDate()).slice(-2)+“+(“0”+(dt.getMonth()+1)).slice(-2)+“+dt.getFullYear();
document.getElementById(“OutputDate”).value=datestring

只需将正确的格式传递给date()函数:

//var dt=new Date();//我想用下两行替换这一行!
var inDate=document.getElementById(“InputDate”).value;
inDate=inDate.分割(“.”);
var dt=新日期(inDate[2],inDate[1],inDate[0]);
//警报(dt);
dt.setFullYear(dt.getFullYear()-3);
var datestring=(“0”+dt.getDate()).slice(-2)+“+(“0”+(dt.getMonth()+1)).slice(-2)+“+dt.getFullYear();
document.getElementById(“OutputDate”).value=datestring

var d=文档;
d、 g=d.getElementById;
var inDate=d.g(“输入日期”);
var outDate=d.g(“OutputDate”);
var datestring=“”;
var mo=“”;
var dt=null;
inDate.onchange=函数(){
dt=新日期(初始值);
dt.setFullYear(dt.getFullYear()-3);
datestring=(“0”+(dt.getMonth()+1)).slice(-2)+“+(“0”+dt.getDate()).slice(-2)+“+dt.getFullYear();
outDate.value=日期字符串;
};
var d=文档;
d、 g=d.getElementById;
var inDate=d.g(“输入日期”);
var outDate=d.g(“OutputDate”);
var datestring=“”;
var mo=“”;
var dt=null;
inDate.onchange=函数(){
dt=新日期(初始值);
dt.setFullYear(dt.getFullYear()-3);
datestring=(“0”+(dt.getMonth()+1)).slice(-2)+“+(“0”+dt.getDate()).slice(-2)+“+dt.getFullYear();
outDate.value=日期字符串;
};

您可以研究让日期构造函数解析的有效/安全日期格式。如果输入日期的格式不同,则必须先对其进行修改。InputDate字段的日期格式是什么?日期构造函数允许解析的有效/安全日期格式是什么,您可以研究。如果输入日期的格式不同,则必须先对其进行修改。InputDate字段的日期格式是什么?date.parse的概念很好,但遗憾的是,这不是推荐的做法;请参阅Date.parse的概念,它很好,但不幸的是,它不是推荐的做法;看见
var date = "2017-06-19";//yyyy-mm-dd or mm-dd-yyyy
var dt = new Date(date);
console.log(dt);
//output Mon Jun 19 2017 00:00:00 GMT+0545 (Nepal Standard Time)
// if you want to set the date to new output text box 
var newDate = dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate();
console.log(newDate);
var inputValues = document.getElementById("InputDate").value.split(".");
var dt = new Date(inputValues[2], inputValues[1] - 1, inputValues[0]);
    var inDate= document.getElementById("InputDate").value;
    var dt = new Date(Date.parse(inDate));  //use parse input to corret date format
    dt.setFullYear(dt.getFullYear() - 3);