0

jQueryDatepickerを使用しています。選択した2つの日付の間の日数を計算できますが、日付範囲を選択できる必要があります(「fromdate」を選択して「todate」の「minim」になり、「todate」を選択して「maxim」になります」 fromdate')。私はこのコードを使用しています:

<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>

ありがとうございました!

4

2 に答える 2

2

このデモリンクを見てください。これは、選択した2つの日付の間の日数を計算し、日付範囲を選択できるようにするのに役立ちます。

$('.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();
});

これがお役に立てば幸いです。

于 2013-02-26T09:51:48.613 に答える
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)
});

于 2013-02-26T10:17:19.637 に答える