JQuery Datepicker - 添加年份

时间:2011-02-21 15:26:24

标签: jquery jquery-ui datepicker

我已将JQuery Datepicker控件添加到我的一个ASP.Net页面中。该页面允许用户添加有关设备的详细信息。

他们还可以使用Datepicker选择他们购买设备的日期,然后从下拉列表中选择设备随附的保修期(即1,2,3,4,5岁等)。根据他们选择的保修期,我需要JQuery代码来计算设备保修期限的日期,即,如果购买21/02/2011,3年保修,则保修到期日为21/02/2014。 / p>

我已经查看了此网站上的其他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);
    } 
});

然而,这似乎无法正常工作。

非常感谢任何反馈。

感谢。

3 个答案:

答案 0 :(得分:5)

尝试使用Date的{​​{3}}和setFullYear

$("#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);
    }
});

以下是一个有效的例子:getFullYear

答案 1 :(得分:1)

您可能必须为其他字段定义日期时间选择器:

$('#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);
  } 
});

我稍微改了一下。

答案 2 :(得分:0)

var incrementmonth = $("#<%=calPlannedCompletionDate.ClientId%>").datepicker('getDate', +12m');
incrementmonth.setMonth(incrementmonth.getMonth() + 12);
$("#<%=calPlannedCompletionDate.ClientId%>").datepicker('setDate', incrementmonth);