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日期解析示例
输入和输出均采用