Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 如何在java脚本中向任何给定日期添加任意天数_Javascript - Fatal编程技术网

Javascript 如何在java脚本中向任何给定日期添加任意天数

Javascript 如何在java脚本中向任何给定日期添加任意天数,javascript,Javascript,我觉得我在这里太深了。此外,在这个网站上发布的类似问题往往只显示一个代码片段——对初学者没有帮助,或者一直提到在今天的日期前增加天数,这对我也没有完全的帮助。我有一个表格,要求用户输入他们希望借用物品的天数和他们希望贷款开始的日期。后者可采用以下格式编写01/12/2015。如何编写函数来获取返回日期并在表单中显示它?这就是我目前所拥有的 function ReturnDate(){ // code indentation var reservationStart = document.g

我觉得我在这里太深了。此外,在这个网站上发布的类似问题往往只显示一个代码片段——对初学者没有帮助,或者一直提到在今天的日期前增加天数,这对我也没有完全的帮助。我有一个表格,要求用户输入他们希望借用物品的天数和他们希望贷款开始的日期。后者可采用以下格式编写
01/12/2015
。如何编写函数来获取返回日期并在表单中显示它?这就是我目前所拥有的

function ReturnDate(){ // code indentation
   var reservationStart = document.getElementById('reservationStart').value;
   var requestedDays = parseInt(document.getElementById('days').value);
   var returnDate = document.getElementById('DateEnd');
   myResult = Date.setTime(reservationStart.getTime() + requestedDays* 86400000);
   DateEnd.value = myResult;
}
我也不完全清楚为什么我们要乘以86400000

根据要求,请查找HTML代码:

<tr>
    <td>Number of days</td>
    <td><input type="text" name="days" id="days" onkeyup="calculate()" placeholder= "Enter the number of days you wish to borrow the game for" autocomplete="off" style="width:80%" /></td>
</tr>

<tr>
    <td>Date start <i>(dd/mm/yyyy)</i></td>
    <td><input type="text" value="" name="reservationStart" id="reservationStart" onkeyup="ReturnDate()" style="width:80%"/></td>
</tr>

<tr>
    <td>Date end</td>
    <td><input type="text" value="" name="DateEnd" id="DateEnd" style="width:80%"/></td>
</tr>

天数
开始日期(年月日)
日期结束

日与日之间的差异并不总是24小时。由于夏令时,它可以是23或25小时。因此,仅仅增加86400秒到第二天是不准确的

我建议使用
Date
构造函数来获得准确的结果:

var dateParts = reservationStart.split('/')
    .map(function (i) { return parseInt(i); });

var dateEnd = new Date(
    dateParts[0], 
    dateParts[1] - 1, 
    dateParts[2] + requestedDays
);

日与日之间的差异并不总是24小时。由于夏令时,它可以是23或25小时。因此,仅仅增加86400秒到第二天是不准确的

我建议使用
Date
构造函数来获得准确的结果:

var dateParts = reservationStart.split('/')
    .map(function (i) { return parseInt(i); });

var dateEnd = new Date(
    dateParts[0], 
    dateParts[1] - 1, 
    dateParts[2] + requestedDays
);

日与日之间的差异并不总是24小时。由于夏令时,它可以是23或25小时。因此,仅仅增加86400秒到第二天是不准确的

我建议使用
Date
构造函数来获得准确的结果:

var dateParts = reservationStart.split('/')
    .map(function (i) { return parseInt(i); });

var dateEnd = new Date(
    dateParts[0], 
    dateParts[1] - 1, 
    dateParts[2] + requestedDays
);

日与日之间的差异并不总是24小时。由于夏令时,它可以是23或25小时。因此,仅仅增加86400秒到第二天是不准确的

我建议使用
Date
构造函数来获得准确的结果:

var dateParts = reservationStart.split('/')
    .map(function (i) { return parseInt(i); });

var dateEnd = new Date(
    dateParts[0], 
    dateParts[1] - 1, 
    dateParts[2] + requestedDays
);

请参阅以下工作指南:

这是密码

function ReturnDate(){ // code indentation
   var reservationStart = document.getElementById('reservationStart').value;
   var requestedDays = parseInt(document.getElementById('days').value);
   var returnDate = document.getElementById('DateEnd');
   //myResult = Date.setTime(reservationStart.getTime() + requestedDays* 86400000);
   var arrParts = reservationStart.split("/"); // aray of date parts
   // params are year, month, day, hour, min, second, millisecond (all numeric)
   // Months are 0-based (jan = 0) so subtract 1 on second parameter
    // add the days requested to the 3rd parameter to amend the date.
   var myDate = new Date(arrParts[0], parseInt(arrParts[1])-1, parseInt(arrParts[2]) + requestedDays, 0, 0, 0, 0);

   // now build a string out of it
   var sResult = myDate.getFullYear()+"/";
   sResult += ("0"+(myDate.getMonth()+1)).substr(-2)+"/";
   sResult += ("0"+myDate.getDate()).substr(-2);
   document.getElementById('DateEnd').value =   sResult;
}
它的关键是将requestedDays添加到date对象的days部分


希望这些评论能解释发生了什么。关于在字符串末尾的开头添加“0”的部分是为了满足一位数的月份和天数,例如march=“03”。

请参见以下工作指南:

这是密码

function ReturnDate(){ // code indentation
   var reservationStart = document.getElementById('reservationStart').value;
   var requestedDays = parseInt(document.getElementById('days').value);
   var returnDate = document.getElementById('DateEnd');
   //myResult = Date.setTime(reservationStart.getTime() + requestedDays* 86400000);
   var arrParts = reservationStart.split("/"); // aray of date parts
   // params are year, month, day, hour, min, second, millisecond (all numeric)
   // Months are 0-based (jan = 0) so subtract 1 on second parameter
    // add the days requested to the 3rd parameter to amend the date.
   var myDate = new Date(arrParts[0], parseInt(arrParts[1])-1, parseInt(arrParts[2]) + requestedDays, 0, 0, 0, 0);

   // now build a string out of it
   var sResult = myDate.getFullYear()+"/";
   sResult += ("0"+(myDate.getMonth()+1)).substr(-2)+"/";
   sResult += ("0"+myDate.getDate()).substr(-2);
   document.getElementById('DateEnd').value =   sResult;
}
它的关键是将requestedDays添加到date对象的days部分


希望这些评论能解释发生了什么。关于在字符串末尾的开头添加“0”的部分是为了满足一位数的月份和天数,例如march=“03”。

请参见以下工作指南:

这是密码

function ReturnDate(){ // code indentation
   var reservationStart = document.getElementById('reservationStart').value;
   var requestedDays = parseInt(document.getElementById('days').value);
   var returnDate = document.getElementById('DateEnd');
   //myResult = Date.setTime(reservationStart.getTime() + requestedDays* 86400000);
   var arrParts = reservationStart.split("/"); // aray of date parts
   // params are year, month, day, hour, min, second, millisecond (all numeric)
   // Months are 0-based (jan = 0) so subtract 1 on second parameter
    // add the days requested to the 3rd parameter to amend the date.
   var myDate = new Date(arrParts[0], parseInt(arrParts[1])-1, parseInt(arrParts[2]) + requestedDays, 0, 0, 0, 0);

   // now build a string out of it
   var sResult = myDate.getFullYear()+"/";
   sResult += ("0"+(myDate.getMonth()+1)).substr(-2)+"/";
   sResult += ("0"+myDate.getDate()).substr(-2);
   document.getElementById('DateEnd').value =   sResult;
}
它的关键是将requestedDays添加到date对象的days部分


希望这些评论能解释发生了什么。关于在字符串末尾的开头添加“0”的部分是为了满足一位数的月份和天数,例如march=“03”。

请参见以下工作指南:

这是密码

function ReturnDate(){ // code indentation
   var reservationStart = document.getElementById('reservationStart').value;
   var requestedDays = parseInt(document.getElementById('days').value);
   var returnDate = document.getElementById('DateEnd');
   //myResult = Date.setTime(reservationStart.getTime() + requestedDays* 86400000);
   var arrParts = reservationStart.split("/"); // aray of date parts
   // params are year, month, day, hour, min, second, millisecond (all numeric)
   // Months are 0-based (jan = 0) so subtract 1 on second parameter
    // add the days requested to the 3rd parameter to amend the date.
   var myDate = new Date(arrParts[0], parseInt(arrParts[1])-1, parseInt(arrParts[2]) + requestedDays, 0, 0, 0, 0);

   // now build a string out of it
   var sResult = myDate.getFullYear()+"/";
   sResult += ("0"+(myDate.getMonth()+1)).substr(-2)+"/";
   sResult += ("0"+myDate.getDate()).substr(-2);
   document.getElementById('DateEnd').value =   sResult;
}
它的关键是将requestedDays添加到date对象的days部分


希望这些评论能解释发生了什么。在字符串末尾的开头添加“0”是为了满足单个数字的月份和天数,例如march=“03”。

这是一个完整的输入验证和Magomogo的日期解析示例

输入和输出的格式均为
yyyy/mm/dd
。如果需要支持另一种格式,如
mm/dd/yyy
dd/mm/yyyy
,则必须更改这些位

函数ReturnDate(){
var returnDate='';
var reservationStart=document.getElementById('reservationStart').value;
var requestedDays=parseInt(document.getElementById('days').value);
var dateEnd=document.getElementById('dateEnd');
var dateParts=reservationStart.split('/').map(函数(i){
返回parseInt(i);
});
//检查输入是否有效,否则忽略
if(dateParts.length==3&&!isNaN(requestedDays)){
var d=新日期(
日期部件[0],
日期部分[1]-1,
dateParts[2]+请求日期
);
//如果日期有效,则返回该日期,否则返回错误。
如果(!isNaN(d.getTime())){
returnDate=d.getFullYear()+“/”+(d.getMonth()+1)+“/”+d.getDate();
}否则{
返回日期='?';
}
}
DateEnd.value=返回日期;
}

天数
开始日期(yyyy/mm/dd)
日期结束(yyyy/mm/dd)

下面是一个完整的输入验证和Magomogo日期解析示例

输入和输出的格式均为
yyyy/mm/dd
。如果需要支持另一种格式,如
mm/dd/yyy
dd/mm/yyyy
,则必须更改这些位

函数ReturnDate(){
var returnDate='';
var reservationStart=document.getElementById('reservationStart').value;
var requestedDays=parseInt(document.getElementById('days').value);
var dateEnd=document.getElementById('dateEnd');
var dateParts=reservationStart.split('/').map(函数(i){
返回parseInt(i);
});
//检查输入是否有效,否则忽略
if(dateParts.length==3&&!isNaN(requestedDays)){
var d=新日期(
日期部件[0],
日期部分[1]-1,
dateParts[2]+请求日期
);
//如果日期有效,则返回该日期,否则返回错误。
如果(!isNaN(d.getTime())){
returnDate=d.getFullYear()+“/”+(d.getMonth()+1)+“/”+d.getDate();
}否则{
返回日期='?';
}
}
DateEnd.value=返回日期;
}

天数
开始日期(yyyy/mm/dd)
日期结束(yyyy/mm/dd)

下面是一个完整的输入验证和Magomogo日期解析示例

输入和输出均采用