как добавить день к дате с помощью jquery datepicker - PullRequest
25 голосов
/ 07 января 2010

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

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

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

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

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

Есть мысли?

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

Ответы [ 3 ]

67 голосов
/ 07 января 2010

Попробуйте это:

 $('.pickupDate').change(function() {
  var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
  date2.setDate(date2.getDate()+1); 
  $('.dropoffDate').datepicker('setDate', date2);
});
8 голосов
/ 30 декабря 2014

Этот ответ действительно помог мне начать работу (noob) - но я столкнулся с некоторым странным поведением, когда я установил дату начала 31.12.2014 и добавил +1 к дате окончания по умолчанию. Вместо того, чтобы дать мне дату окончания 01.01.2015, я получал 01.02.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.

  }

});
4 голосов
/ 07 января 2010

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

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

var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...