Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 计算一周中两天之间的夜数_Javascript_Jquery - Fatal编程技术网

Javascript 计算一周中两天之间的夜数

Javascript 计算一周中两天之间的夜数,javascript,jquery,Javascript,Jquery,我试图使用jQuery为预订系统计算一周中两个选定日期之间的夜数,以指定人们可以在一周中的哪几天到达和离开。我有两个下拉列表,一个用于到达日期,一个用于离开日期: <select required="required" class="daypicker" id="arrivalday" name="arrivalday"> <option></option> <option value="1">Monday</option&g

我试图使用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>
到目前为止,我已经做到了这一点,但什么都没有发生:

$(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();
});
$(文档).ready(函数(){
$(“.daypicker”).change(函数(){
var arrivalday=$(“#arrivalday”).val();
var departureday=$('#departureday').val();
如果(到达日期==离开日期){
$('#numnights').html('7');
}否则如果(到达日<离开日){
$('numnights').html(出发日-到达日);
}否则{
$('#numnights').html(到达日-离开日-1);
}
}).change();
});

发现问题后,选择将在用户选择一个选项后显示,因此我将代码移动到该选项的更改功能中,所有操作都按预期进行。

您已经得到了它,只需为输出创建容器(NumLights元素)

无论如何,代码在以下方面更简洁:


$(文档).ready(函数(){
$(“.daypicker”).on('change',function(){calculateNights();});
});
函数calculateNights(){
var arrivalday=$(“#arrivalday”).val();
var departureday=$('#departureday').val();
var numberNights=出发日-到达日;
numberNights=(numberNights<1)?numberNights+7:numberNights;
$(“#numNights”).html(numberNights);
}

星期一
星期二
星期三
星期四
星期五
星期六
星期日
星期一
星期二
星期三
星期四
星期五
星期六
星期日


对于用户可能期望的不同场景,这似乎不够全面。你应该使用一个带有完整日期的普通日期选择器,因为用户可能希望每次预订超过一周。当你开始使用完整日期时,我建议使用momentjs计算天数差异。当用户预订时,我将使用日期选择器,这是一个管理页面,说明人们可以到达和离开的日期,然后在DatePickers中定义可选择的日期/日期尝试这些计算的代码在哪里?数学并不复杂。由于日期使用了对天数的索引引用,您可能真的希望使用
zero
作为周初值,看起来您已经知道如何在头脑中进行计算了。拿起铅笔和纸,写下你的思考过程。然后编写做同样事情的代码。
$(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();
});