web-dev-qa-db-ja.com

jquery datepickerを使用して日付に日付を追加する方法

私のサイトには、jquery日付ピッカーを使用して、ピックアップ日とドロップオフ日用の2つのテキストボックスがあります。

選択した集荷日の1日前に降車日の値を設定するのに問題があります。

ここに私が持っているものがあります:

$('.pickupDate').change(function() {
    var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
    $('.dropoffDate').datepicker('setDate', date2);
});

上記は実行されますが、ドロップオフテキストボックスの値は1日先ではなくピックアップ値と一致します。例:2010年1月1日を選択した場合、上記のコードは2010年2月1日ではなくドロップボックスに2010年1月1日を返します。

何かご意見は?

あなたの助けをありがとう、リッチ

25
Richard Reddy

これを試して:

 $('.pickupDate').change(function() {
  var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
  date2.setDate(date2.getDate()+1); 
  $('.dropoffDate').datepicker('setDate', date2);
});
67

この回答は私を始めるのに本当に役立ちました(noob)-しかし、開始日を12/31/2014に設定し、終了日をデフォルトに+1を追加すると、奇妙な動作に遭遇しました。 2015年1月1日の終了日を指定する代わりに、2015年2月1日を取得しました(!!!)。このバージョンは、これらの年末の奇妙な事態を避けるために、開始日のコンポーネントを解析します。


 $( "#date_start" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
         $("#date_end").datepicker("option","minDate", selected); //  mindate on the End datepicker cannot be less than start date already selected.
         var date = $(this).datepicker('getDate');
         var tempStartDate = new Date(date);
         var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
         $('#date_end').datepicker('setDate', default_end); // Set as default                           
   }

 });

 $( "#date_end" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
     $("#date_start").datepicker("option","maxDate", selected); //  maxdate on the Start datepicker cannot be more than end date selected.

  }

});
8
selu220

Datepicker( 'setDate')は、入力ではなく日付ピッカーに日付を設定します。

日付を追加して、入力に設定する必要があります。

var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);
4
Daniel Moura