jQuery 日期选择器计算从今天开始的天数
jQuery datepicker to count days from today
我有这段代码,它使用 jqueryUI datepicker 计算两个日期之间的天数。
我怎样才能完全摆脱第一个输入,只计算从今天开始的天数?
function showDays() {
var start = $('#arr_date').datepicker('getDate');
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = (end - start) / 1000 / 60 / 60 / 24;
$('#num_nights').val(days);
}
$("#arr_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
$("#dep_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type="text" id="arr_date">
<input type="text" id="dep_date">
<input type="text" id="num_nights" disabled>
使用new Date()
并将其时、分、秒设置为0
以匹配日期选择器格式。另外,使用 Math.round()
来区分。
那么你可以这样计算:
function showDays() {
var start = new Date()
start.setHours(0);
start.setMinutes(0);
start.setSeconds(0);
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = Math.round((end - start) / 1000 / 60 / 60 / 24);
$('#num_nights').val(days);
}
$("#dep_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type="text" id="dep_date">
<input type="text" id="num_nights" disabled>
我有这段代码,它使用 jqueryUI datepicker 计算两个日期之间的天数。
我怎样才能完全摆脱第一个输入,只计算从今天开始的天数?
function showDays() {
var start = $('#arr_date').datepicker('getDate');
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = (end - start) / 1000 / 60 / 60 / 24;
$('#num_nights').val(days);
}
$("#arr_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
$("#dep_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type="text" id="arr_date">
<input type="text" id="dep_date">
<input type="text" id="num_nights" disabled>
使用new Date()
并将其时、分、秒设置为0
以匹配日期选择器格式。另外,使用 Math.round()
来区分。
那么你可以这样计算:
function showDays() {
var start = new Date()
start.setHours(0);
start.setMinutes(0);
start.setSeconds(0);
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = Math.round((end - start) / 1000 / 60 / 60 / 24);
$('#num_nights').val(days);
}
$("#dep_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type="text" id="dep_date">
<input type="text" id="num_nights" disabled>