我如何将Date字段设置为等于另一个Date + Int值,该值表示以月为单位的值

时间:2016-05-16 23:32:45

标签: javascript jquery datepicker

我正在开发一个asp.net mvc-4 Web应用程序。我的观点中有三个字段: -

-Live Date(填充jQuery DatePicker) -结束日期 -Length In Months

bundle install

现在我想使用jQuery执行以下操作: -

结束日期等于实际日期+长度数月。

因此,如果用户选择日期为1/1/2000,月长为3。然后结束日期应该等于1/4/2000 ..所以换句话说,如果用户按月份的实际日期和/或长度,我希望更改结束日期......那么任何人都可以这样做吗?

修改: -

目前我的直播日期格式为<input Value="31/05/2016" class="datepicker" data-val="true" data-val-date="The field Live Date must be a date." id="LiveDate" name="LiveDate" type="text" value="31/05/2016 00:00:00" /> <input Value="31/10/2016" class="datepicker" data-val="true" data-val-date="The field End Date must be a date." disabled="disabled" id="EndDate" name="EndDate" type="text" value="31/10/2016 00:00:00" /> <input class="text-box single-line" data-val="true" data-val-number="The field Contract Length (In Months) must be a number." data-val-required="The Contract Length (In Months) field is required." id="ContractLength" name="ContractLength" type="number" value="5" />

现在我尝试了以下jquery: -

dateFormat: "dd/mm/yy"

但目前如果我的liveate = $("#LiveDate, #ContractLength").change(function () { var st = new Date($("#LiveDate").val()); var month = $("#ContractLength").val(); $("#EndDate").val(st.getDate() + '/'+(new Date(st.setMonth(st.getMonth() + month)).getMonth() + 1) + '/' + st.getFullYear()); }); 且合同期限= 31/05/2016,则结束日期为4!不确定为什么?

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

$("#start, #month").change(function()
{
  var st = new Date($("#start").val());
  var month = $("#month").val();
  $("#end").val((new Date(st.setMonth(st.getMonth() + month)).getMonth() + 1) + '/' + st.getDate() + '/' +  st.getFullYear());  
}).change(); // optional

示例:https://jsfiddle.net/DinoMyte/ez8cgsx7/2/

或通过定义用户定义的jquery函数:

$.fn.addMonths = function()
{ 
  var st = new Date($("#start").val());
  var month = $("#month").val();
  $("#end").val((new Date(st.setMonth(st.getMonth() + month)).getMonth() + 1) + '/' + st.getDate() + '/' +  st.getFullYear());  
};

$("#start,#month").change(function()
{ 
 $("#end").addMonths(month);
}).change();

示例:https://jsfiddle.net/DinoMyte/ez8cgsx7/3/

答案 1 :(得分:1)

您可以使用以下内容:

Date.prototype.addMonths = function(months) {
  var dat = new Date(this.valueOf());
  dat.setMonth(dat.getMonth() + months);
  return dat;
}

然后这样称呼它:

myDate = myDate.addMonths(lengthInMonths);

这是一个实现了函数的JSBin:

https://jsbin.com/yozikexiwa/1/edit?js,console

答案 2 :(得分:-1)

void printarr(int *ptr, int l)

OR

int *