从到达日历向出发日历添加 2 天
Add 2 days from an arrival calendar to a departure calendar
我目前正在使用 HTML 5 日期类型,它可以为一个人下拉日历 select 和到达日期。我希望能够在出发日历中添加两天,这是我表单中的下一个字段。日期格式为 mm/dd/yyyy.
更清楚一点,如果有人 selects 在到达日历表单字段中说 07/03/2015,那么我希望下一个出发字段中已经包含 07/05/2015为他们。希望这是有道理的
感谢您对此提供的任何帮助。
当然是代码:<div class="col-md-4">
<label>Arrival Date *</label>
<input type="date" value="" maxlength="10" class="form-control" name="arrival" id="arrival" required>
</div>
<div class="col-md-4">
<label>Departure Date *</label>
<input type="date" value="" maxlength="10" class="form-control" name="depart" id="depart" required>
</div>
您需要将日期输入字段的值解析为日期对象,然后向该日期对象添加两天。
var departure = document.getElementById('departure').value;
var arrivalTime = Date.parse(departure) + (1000 * 60 * 60 * 24 * 2);
var arrivalDate = new Date(arrivalTime);
// set the value on the input
document.getElementById('arrival').value = arrivalDate.toString('yyyy-MM-dd');
您需要将日期设置为该格式,否则 HTML5 将不起作用。此线程将引导您朝着正确的方向前进(例如有用的库)
How to format a JavaScript date
您可以获取当前日期,然后向其添加两天的毫秒数。您必须处理从所需格式到 RFC 3339 日期格式的转换 (YYYY-MM-DD)。
input type=date – date input control
"A valid full-date as defined in [RFC 3339], with the additional qualification that the year component is four or more digits representing a number greater than 0."
日期输入值的语法
可以查看here (RFC3339 5.6).
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01-12
date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
full-date = date-fullyear "-" date-month "-" date-mday
代码
$(function() {
function parseDate(dateString) {
var parts = dateString.split('/');
return new Date(parts[2], parts[0] - 1, parts[1]);
}
function getFormattedDate(date) {
return date.toISOString().substring(0, 10);
}
function addTime(date, ms) {
return new Date(date.getTime() + ms);
}
var MS_SEC = 1000;
var MS_MIN = MS_SEC * 60;
var MS_HOUR = MS_MIN * 60;
var MS_DAY = MS_HOUR * 24;
var date = parseDate('07/03/2015');
$('#arrival').val(getFormattedDate(date));
$('#departure').val(getFormattedDate(addTime(date, MS_DAY * 2)));
});
label {
display: inline-block;
width: 80px;
font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="arrival">Arrival: </label>
<input type=date id="arrival" />
<br />
<label for="departure">Departure: </label>
<input type=date id="departure" />
var date1 = Date.parse('07/05/2015');
date1.setDate(date1.getDate()+2);
现在 date1 将给出 07/05/2015
我目前正在使用 HTML 5 日期类型,它可以为一个人下拉日历 select 和到达日期。我希望能够在出发日历中添加两天,这是我表单中的下一个字段。日期格式为 mm/dd/yyyy.
更清楚一点,如果有人 selects 在到达日历表单字段中说 07/03/2015,那么我希望下一个出发字段中已经包含 07/05/2015为他们。希望这是有道理的
感谢您对此提供的任何帮助。
当然是代码:<div class="col-md-4">
<label>Arrival Date *</label>
<input type="date" value="" maxlength="10" class="form-control" name="arrival" id="arrival" required>
</div>
<div class="col-md-4">
<label>Departure Date *</label>
<input type="date" value="" maxlength="10" class="form-control" name="depart" id="depart" required>
</div>
您需要将日期输入字段的值解析为日期对象,然后向该日期对象添加两天。
var departure = document.getElementById('departure').value;
var arrivalTime = Date.parse(departure) + (1000 * 60 * 60 * 24 * 2);
var arrivalDate = new Date(arrivalTime);
// set the value on the input
document.getElementById('arrival').value = arrivalDate.toString('yyyy-MM-dd');
您需要将日期设置为该格式,否则 HTML5 将不起作用。此线程将引导您朝着正确的方向前进(例如有用的库)
How to format a JavaScript date
您可以获取当前日期,然后向其添加两天的毫秒数。您必须处理从所需格式到 RFC 3339 日期格式的转换 (YYYY-MM-DD)。
input type=date – date input control
"A valid full-date as defined in [RFC 3339], with the additional qualification that the year component is four or more digits representing a number greater than 0."
日期输入值的语法
可以查看here (RFC3339 5.6).
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01-12
date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
full-date = date-fullyear "-" date-month "-" date-mday
代码
$(function() {
function parseDate(dateString) {
var parts = dateString.split('/');
return new Date(parts[2], parts[0] - 1, parts[1]);
}
function getFormattedDate(date) {
return date.toISOString().substring(0, 10);
}
function addTime(date, ms) {
return new Date(date.getTime() + ms);
}
var MS_SEC = 1000;
var MS_MIN = MS_SEC * 60;
var MS_HOUR = MS_MIN * 60;
var MS_DAY = MS_HOUR * 24;
var date = parseDate('07/03/2015');
$('#arrival').val(getFormattedDate(date));
$('#departure').val(getFormattedDate(addTime(date, MS_DAY * 2)));
});
label {
display: inline-block;
width: 80px;
font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="arrival">Arrival: </label>
<input type=date id="arrival" />
<br />
<label for="departure">Departure: </label>
<input type=date id="departure" />
var date1 = Date.parse('07/05/2015');
date1.setDate(date1.getDate()+2);
现在 date1 将给出 07/05/2015