2015-11-20 148 views
1

我想限制日期範圍在jquery datepicker。其實我有日期範圍輸入,如from_date和to_date我想to_date maxdate值應該是from_date + 365天,因此它將是1年的日期範圍。我不知道如何做到這一點。jquery datepicker 365天的日期範圍

我試過這種方式,但不工作:

$(function() { 
    $("#from").datepicker({ 
     defaultDate: "+1w", 
     minDate: 0, 
     changeMonth: true, 
     numberOfMonths: 1, 
     onClose: function(selectedDate) { 
     $("#to").datepicker("option", "minDate", selectedDate); 
     } 
    }); 
    $("#to").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 1, 
     maxDate: new Date($('#from').val() + 365), 
    }); 
    }); 
+0

添加的maxDate:365,在你的jQuery。 –

+0

它應該從輸入#from + 365天的選定日期開始。如果我將放置maxDate:365,它將從今天算起數天,而不是從#from所選輸入日期開始計數。得到它了 ? – FunSide

+0

然後從今天的日期減去選定的日期,以獲得天數,並添加365. –

回答

0

您可以設置所需的天數days_to_add。另請注意,您可能需要啓用changeYear選項。

$(function() { 
 
    $("#from").datepicker({ 
 
     defaultDate: "+1w", 
 
     minDate: 0, 
 
     changeMonth: true, 
 
     changeYear: true, 
 
     numberOfMonths: 1, 
 
     onClose: function (selectedDate) { 
 
      $("#to").datepicker("option", "minDate", selectedDate); 
 

 
      var days_to_add = 365, // SET DAYS HERE 
 
       parsed_date = new Date($.datepicker.parseDate('mm/dd/yy', selectedDate)), 
 
       add_year = new Date(parsed_date.setDate(parsed_date.getDate() + days_to_add)), 
 
       formatted_date = $.datepicker.formatDate('mm/dd/yy', add_year); 
 

 
      $('#to').datepicker('option', 'maxDate', formatted_date); 
 
     } 
 
    }); 
 
    $("#to").datepicker({ 
 
     dateFormat: 'mm/dd/yy', 
 
     defaultDate: "+1w", 
 
     changeMonth: true, 
 
     changeYear: true, 
 
     maxDate: '+1y' 
 
    }); 
 
});
<link href="https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script> 
 

 
<input id="from" /> 
 
<input id="to" />

+0

偉大的工作很好。它正是我想要的。謝謝哥們。 – FunSide

0

你能做到這樣

$("#from").datepicker({ 
dateFormat: 'dd/mm/yy', 
onSelect: function(dateStr) { 
    var d = $.datepicker.parseDate('dd/mm/yy', dateStr); 
    var years = parseInt(1); 

    d.setFullYear(d.getFullYear() + years); 
    d.setDate(d.getDate()-1); 
    $('#to').datepicker({dateFormat: 'dd/mm/yy',maxDate: d}); 
} 
}); 

這裏的jsfiddle它jsfiddle

+0

非常感謝它爲我工作,但仍然是一個問題。假設我從2015年11月20日開始選擇#並且在#日期給出的最大日期爲2016年11月20日,而不是2016年11月19日,因爲2015年11月20日至2016年11月20日這段時間將不是366天365我們可以從最大日期減去1天嗎? – FunSide

+0

是的,它可以完成從'd'減去一天 - –

+0

你能告訴我怎麼樣嗎? – FunSide

相關問題