Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将日期字段设置为等于另一个日期+;表示月份值的Int值_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript 如何将日期字段设置为等于另一个日期+;表示月份值的Int值

Javascript 如何将日期字段设置为等于另一个日期+;表示月份值的Int值,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我正在开发一个asp.net mvc-4 web应用程序。我的视图中有三个字段:- -实时日期(使用jQuery日期选择器填充) -结束日期 -以月为单位的长度 <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/0

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

-实时日期(使用jQuery日期选择器填充) -结束日期 -以月为单位的长度

<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" /> 

但目前如果我有我的livedate=
2016年5月31日
和我的合同长度=
4
,那么结束日期将是
2023年5月5日
!!!不确定原因?

您可以使用以下方法:

Date.prototype.addMonths = function(months) {
  var dat = new Date(this.valueOf());
  dat.setMonth(dat.getMonth() + months);
  return dat;
}
然后这样称呼它:

myDate = myDate.addMonths(lengthInMonths);
下面是一个JSBin,它实现了以下功能:


您可以使用以下选项:

Date.prototype.addMonths = function(months) {
  var dat = new Date(this.valueOf());
  dat.setMonth(dat.getMonth() + months);
  return dat;
}
然后这样称呼它:

myDate = myDate.addMonths(lengthInMonths);
下面是一个JSBin,它实现了以下功能:

您可以尝试以下方法:

$("#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
例如:

或者通过定义用户定义的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();
示例:

您可以尝试以下方法:

$("#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
例如:

或者通过定义用户定义的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();
例如:



但如何/何时启动此功能?我希望它在活动日期和/或月长发生更改时启动…查看:关于datepicker的更改事件。那么更改月长字段又如何?您之前根本没有提到合同长度,这是什么意思?我指的是“月长”字段?但如何/何时启动此功能?我希望它在活动日期和/或月长发生更改时启动…查看:datepicker的更改事件。那么更改月长字段又如何?您之前根本没有提到合同长度,这是什么意思?我指的是“月长”field?在这种情况下,使用moment.js可以让你的生活更轻松。@NelsonTeixeira也许将来我可以研究一下这个。。。但在我目前的阶段,我正试图得到这项工作,使用标准的jQueryok。。。但是相信我,在浪费了很多时间在糟糕的js Date类上之后,我会告诉你:你越早转到moment.js,就越好。它的使用非常简单。@NelsonTeixeira,正如我提到的,在现阶段使用新库不是我的首选。。感谢moment.js在这些情况下让你的生活变得更轻松。@NelsonTeixeira也许将来我可以研究一下这个。。。但在我目前的阶段,我正试图得到这项工作,使用标准的jQueryok。。。但是相信我,在浪费了很多时间在糟糕的js Date类上之后,我会告诉你:你越早转到moment.js,就越好。它的使用非常简单。@NelsonTeixeira,正如我提到的,在现阶段使用新库不是我的首选。。谢谢你的回复。但是你的JSFIDLE在我的情况下不起作用。另外,我有两个字段LiveDate和Length,以月为单位。我想知道如果这些字段中的任何一个被更改为相应的结束日期。。感谢过时的解决方案和小提琴。现在试试。在我的情况下,您的方法似乎部分有效,,,函数将在请求时激发,,,但问题是EndDate的计算将出错,,,您能检查我的编辑以查看最终代码吗?谢谢。请检查我的编辑,如果可能的话,请给出相应的建议。谢谢回复。但是你的JSFIDLE在我的情况下不起作用。另外,我有两个字段LiveDate和Length,以月为单位。我想知道如果这些字段中的任何一个被更改为相应的结束日期。。感谢过时的解决方案和小提琴。现在试试。在我的情况下,您的方法似乎部分有效,,,函数将在请求时激发,,,但问题是EndDate的计算将出错,,,您能检查我的编辑以查看最终代码吗?谢谢,请检查我的编辑,如果可能的话,请给出相应的建议。你能解释一下,为什么是否定的吗?你能解释一下,为什么是否定的吗?