计算一周中两天之间的夜晚数
Count number of nights between two days of the week
我正在尝试使用预订系统的jQuery计算一周中选定的两天之间的夜数,以指定人们可以在一周中的哪一天到达和离开。我有两个下拉菜单,一个是到达日期,一个是离开日期:
<select required="required" class="daypicker" id="arrivalday" name="arrivalday">
<option></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
<select required="required" class="daypicker" id="departureday" name="departureday">
<option></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
如果下拉框中的任何一个发生变化,则应按如下方式计算夜数:
arrival = Monday
departure = Friday
number of nights = 4
arrival = Monday
departure = Monday
number of nights = 7
arrival = Friday
departure = Monday
number of nights = 3
这是我到目前为止所做的,但是什么也没有发生:
$(document).ready(function(){
$(".daypicker").change(function(){
var arrivalday = $("#arrivalday").val();
var departureday = $('#departureday').val();
if (arrivalday == departureday){
$('#numnights').html('7');
} else if (arrivalday < departureday) {
$('#numnights').html(departureday - arrivalday);
} else {
$('#numnights').html(arrivalday- departureday - 1);
}
}).change();
});
发现问题,在用户选择一个选项后显示选择,所以我将代码移到该选项的更改函数中,一切都如预期的那样工作。
您已经得到了它,您只需要为输出(numnights
元素)创建容器。
无论如何,这样代码会更简洁一些:
$(document).ready(function(){
$(".daypicker").on('change', function(){calculateNights();});
});
function calculateNights() {
var arrivalday = $("#arrivalday").val();
var departureday = $('#departureday').val();
var numberNights = departureday - arrivalday;
numberNights = (numberNights < 1) ? numberNights + 7 : numberNights;
$("#numNights").html(numberNights);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select required="required" class="daypicker" id="arrivalday" name="arrivalday">
<option></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
<select required="required" class="daypicker" id="departureday" name="departureday">
<option></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
<hr>
<div id="numNights"></div>
希望有帮助!
相关文章:
- 如何在javascript中获取一年中的周数,其中周日是一周中的第一天
- MomentJS代码不会开始新的一周
- 制作Easing Slider Start横幅取决于一周中的哪一天
- dc.js和crossfilter降低了一周中每天的平均计数
- 如何使用AngularJS$locale选择一周的第一天
- Momentjs 一周的第一天
- 给定特定日期(日/月/年)返回一周的开始 + 结束
- HTML5 Intl API 的一周的第一天
- JS日期选择器能够:时间,日期,日期时间,星期几,一年中的一周,一年中的月份等
- 时刻.js错误,同时在一年的最后一周添加 1 周
- 如何获取两个选定月份日期之间的一周的特定日期
- 从星期一开始一周,使用 isoWeekday()
- 使用 JavaScript 获取给定的日期年份、周数、一周内的日数
- Jquery/Javascript 允许在一周中的特定时间使用特定网页
- 如何在 JavaScript 中将一周中的所有日期放入数组中
- 使用当前日期生成一周的所有日期,并在周一显示周开始日期,在周日显示周末
- 时刻JS,实际一周的第一天是不正确的
- 使用jQuery或JavaScript对一周、一个月和一年的日期进行排序
- 计算一周中两天之间的夜晚数
- 要显示数据的最后一周和任何两个日期之间的数据,我正在努力