我正在使用jQuery Datepicker。我能够计算两个选定日期之间的天数,但我需要能够选择一个日期范围(选择'fromdate'成为'minim'代表'todate'并选择'todate'成为'maxim'代表''从日期')。 我正在使用此代码:
<script type="text/javascript">
$(document).ready(function () {
var selector = function (dateStr) {
var d1 = $('.fromdate').datepicker('getDate');
var d2 = $('.todate').datepicker('getDate');
var diff = 1;
if (d1 && d2) {
diff = diff + Math.floor((d2.getTime() - d1.getTime()) / 86400000); // ms per day
}
$('.calculated').val(diff);
$('.minim').val(d1)
}
$('.fromdate').datepicker({
dateFormat : 'yy-mm-dd',
changeMonth: true,
changeYear: true,
minDate: 'minim'
});
$('.todate').datepicker({
dateFormat : 'yy-mm-dd',
changeMonth: true,
changeYear: true,
minDate: 'fromdate'
});
$('.fromdate,.todate').change(selector)
});
</script>
谢谢!
答案 0 :(得分:2)
请查看此DEMO链接,这有助于您计算选定的两个日期之间的天数,并且可以选择日期范围。
$('.fromdate').datepicker().bind("change", function () {
var minValue = $(this).val();
minValue = $.datepicker.parseDate("yy-mm-dd", minValue);
$('.todate').datepicker("option", "minDate", minValue);
calculate();
});
$('.todate').datepicker().bind("change", function () {
var maxValue = $(this).val();
maxValue = $.datepicker.parseDate("yy-mm-dd", maxValue);
$('.fromdate').datepicker("option", "maxDate", maxValue);
calculate();
});
我希望这会对你有所帮助。
答案 1 :(得分:0)
感谢Bojan Kovacevic我设法解决了我的问题。就像这样:
<script type="text/javascript">
$(document).ready(function () {
var selector = function (dateStr) {
var d1 = $('.fromdate').datepicker('getDate');
var d2 = $('.todate').datepicker('getDate');
$('.fromdate').datepicker("option", "maxDate",d2); //new line
$('.todate').datepicker("option", "minDate",d1); // new line
var diff = 1;
if (d1 && d2) {
diff = diff + Math.floor((d2.getTime() - d1.getTime()) / 86400000);
}
$('.calculated').val(diff);
$('.minim').val(d1)
}
$(".fromdate").datepicker({
dateFormat : 'yy-mm-dd',
changeMonth: true,
changeYear: true,
});
$('.todate').datepicker({
dateFormat : 'yy-mm-dd',
changeMonth: true,
changeYear: true,
minDate: ($(".fromdate").is(":visible") && $(".todate").html() != ""? $('.todate').datepicker('getDate'): 'null'), // new line
});
$('.fromdate,.todate').change(selector)
});