Я добавил элемент управления JQuery Datepicker на одну из моих страниц ASP.Net. На странице пользователь может добавить подробную информацию об оборудовании.

Они также могут выбрать дату покупки оборудования с помощью Datepicker, а затем из раскрывающегося списка выбрать срок гарантии (например, 1,2,3,4,5 лет и т. Д.), Которая поставляется с оборудованием. В зависимости от срока гарантии, который они выбрали, мне нужен код JQuery для определения даты истечения срока гарантии для Оборудования, т. Е. При покупке 21 февраля 2011 года с трехлетней гарантией срок действия гарантии истекает 21 февраля 2014 года.

Я просмотрел другие примеры Datepicker на этом сайте, но, похоже, ни один из них не показывает, как добавлять годы к дате, а только как добавлять дни.

Это мой код пока

$('#equipment_purchaseDate').datepicker({ dateFormat: 'dd/mm/yy', onSelect: function (dateStr) {
        var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
        d.setDate(d.getDate() + ($('#equipment_warrantyLength').val() * 365)); //multiple warranty length by 365 to get years, then add to startDate
        $('#equipment_warrentyExpires').datepicker('setDate', d);
    } 
});

Однако, похоже, это не работает правильно.

Любая обратная связь будет высоко ценится.

Спасибо.

1
tcode 21 Фев 2011 в 18:26

3 ответа

Лучший ответ

Попробуйте использовать setFullYear Date > и getFullYear:

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

        d.setFullYear(d.getFullYear() + years);

        $('#equipment_warrentyExpires').datepicker('setDate', d);
    }
});

Вот рабочий пример: http://jsfiddle.net/andrewwhitaker/Dvd5C/

5
Andrew Whitaker 21 Фев 2011 в 18:48

Вероятно, вам нужно определить средство выбора даты и времени для другого поля:

$('#equipment_warrentyExpires').datepicker({ dateFormat: 'dd/mm/yy' });
$('#equipment_purchaseDate').datepicker({ dateFormat: 'dd/mm/yy', 
  onSelect: function (dateText, inst) {
      alert(dateText);
  var d = $.datepicker.parseDate('dd/mm/yy', dateText);
      alert(d);
  d.setDate(d.getDate() + ($('#equipment_warrantyLength').val() * 365)+1); 
  //multiple warranty length by 365 to get years, then add to startDate
  $('#equipment_warrentyExpires').datepicker('setDate', d);
  } 
});

Я немного изменил это.

1
LeftyX 21 Фев 2011 в 18:52
var incrementmonth = $("#<%=calPlannedCompletionDate.ClientId%>").datepicker('getDate', +12m');
incrementmonth.setMonth(incrementmonth.getMonth() + 12);
$("#<%=calPlannedCompletionDate.ClientId%>").datepicker('setDate', incrementmonth);
0
Celeo 18 Окт 2014 в 07:40