Подтвердить что ты не робот

Как добавить день к дате с помощью jquery datepicker

У меня есть 2 текстовых поля на моем сайте для даты пикапа и даты выхода с использованием набора даты jquery.

У меня возникла проблема с установкой значения даты выключения на один день раньше выбранной даты пикапа.

Вот что у меня есть:

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

Вышеуказанное будет выполнено, но значение в выпадающем текстовом поле будет соответствовать значению пикапа, а не на один день вперед. например: если я выберу 01-01-2010, вышеуказанный код возвращает 01-01-2010 в выпадающем поле вместо 02-01-2010.

Любые мысли?

Спасибо за вашу помощь, Рич

4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

Этот ответ действительно помог мне начать работу (noob) - но я столкнулся с каким-то странным поведением, когда я установил дату начала 12/31/2014 и добавил +1 к дате окончания по умолчанию. Вместо того, чтобы дать мне дату окончания 01/01/2015, я получал 02/01/2015 (!!!). Эта версия анализирует компоненты даты начала, чтобы избежать странностей в конце года.


 $( "#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.

  }

});

Ответ 3

Datepicker ('setDate') устанавливает дату в datepicket не на входе.

Вы должны добавить дату и установить ее на вход.

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