【发布时间】:2017-03-25 13:57:12
【问题描述】:
我能够计算入住日期和退房日期之间的差异,以获得入住天数以及退房日期是否早于入住日期。
但是,我正在努力弄清楚如何使用用户选择的房间(标准房、大床房、特大床房、商务房或豪华房),并将该房间每晚的费用乘以在酒店的入住天数。
如果可能的话,我还想使用 type="date" 而不是 datepicker。
<!DOCTYPE html>
<html>
<head>
<script>
function check() {
var date1 = new Date(document.getElementById('checkin').value);
var date2 = new Date(document.getElementById('checkout').value);
var diff = Math.abs(date2.getTime() - date1.getTime());
var dayDiff = Math.ceil(diff / (1000 * 3600 * 24));
if (date1 > date2){
alert("Check-out date must be after check-in date!")
}
else {
calculate();
}
}
</script>
<body>
<form>
<fieldset>
<legend>Reserve Hotel Room</legend>
Check-In Date:<br>
<input type="date" id="checkin" name="checkin" required>
<br><br>
Check-Out Date:<br>
<input type="date" id="checkout" name="checkout" required>
<br><br>
Room:
<select id="room" name="room" onchange="report(this.value)">
<option id="standard" value="50">Standard ($50/night)</option>
<option id="queen" value="75">Queen ($75/night)</option>
<option id="king" value="100">King ($100/night)</option>
<option id="business" value="125">Business ($125/night)</option>
<option id="deluxe" value="150">Deluxe Suite ($150/night)</option>
</select>
<button type="submit" onclick="check()">Submit</button>
</fieldset>
</form>
</body>
【问题讨论】:
-
这样的东西有用吗?函数计算(); if (document.getElementById("standard") var report = this.value * 50 * dayDiff;
-
并非所有使用的浏览器都支持输入类型“日期”,因此不实用。您所需要做的就是将天数乘以 room 元素的值:
dayDiff * document.getElementById('room').value。您可能应该使用 Math.round 而不是 Math.ceil (检查超出夏令时的范围)
标签: javascript html forms function date