6

開始日用と終了日用の 2 つの日付ピッカー カレンダーがあります。

私が望むのは、最初の日付が選択されたときに、2 番目の日付ピッカーの defaultDate を最初の日付より 6 か月後に動的に設定することです。

最初の日付を 2 番目の日付ピッカーに報告する方法は知っていますが、最初の日付に 6 か月を追加してから、2 番目の日付ピッカーのデフォルト日付として追加する方法はわかりません

これが私のコードです:

$(".firstcal").datepicker({
    dateFormat: "dd/mm/yy",
    onSelect: function (dateText, inst) {
        var date = $.datepicker.parseDate('dd/mm/yy', dateText);
        var $sec_date = $(".secondcal");
        $sec_date.datepicker("option", "defaultDate", date);
    }
});
$(".secondcal").datepicker({
    dateFormat: "dd/mm/yy"
});

助けてくれてどうもありがとう

編集:

datePicker には、日付に 6 か月を加算する関数があり、「+6M」とラベル付けされています。最初の日付に「+6M」を追加し、それをデフォルトの日付として 2 番目に送信したいだけです。

4

3 に答える 3

11
  1. 選択した日付文字列を JavaScript 日付オブジェクトに解析します。
  2. Date.getMonth()とを使用しDate.setMonth()て月を変更します。後者の関数は、必要に応じて年を自動的に増減します。
  3. jQuery datepicker のsetDateメソッドを使用して、2 番目の datepicker の日付を変更します (を設定してdefaultDateも、目的の結果が得られません)。
onSelect: function(dateText, instance) {
    date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings);
    date.setMonth(date.getMonth() + 6);
    $(".secondcal").datepicker("setDate", date);
}

デモはこちら

于 2012-06-21T13:57:23.510 に答える
5

日付に6か月を追加するには

 var second_date = new Date(date);
 second_date.setMonth(second_date.getMonth()+6); //+6 is however many months

次に、値を更新します

$("#secondcal").val(second_date);  //It is probably better to work with ID
于 2012-06-21T13:20:47.660 に答える
0

これは、2番目のダイアログの最大日付を最初のダイアログより1か月後に設定するために使用するコードです。したがって、代わりにデフォルトの日付を設定するだけです

   var beginsDate=$('#dlg_begins').datepicker('getDate');
   var monthMillisec=30*24*60*60*1000;
   var maxDate=new Date();
   maxDate.setTime( beginsDate.getTime() + monthMillisec );

   $('#dlg_expires').datepicker('option',
   {
       'maxDate':maxDate,
       'minDate':beginsDate
   });
于 2012-06-21T12:05:51.733 に答える