1

这里我有两个输入字段。一个是入职日期,另一个是试用期结束。

要求是:如果用户在加入日期输入字段中输入 24/07/2013,则该日期之后的 6 个月应显示在试用日期字段的末尾。

我试过这样的事情:

joinDate = $('#user_join_date')
joinDate.blur ->
  probationDate = new Date(joinDate.val())
  myVar = new Date(probationDate.setMonth probationDate.getMonth() + 6)
  $('#user_probation_end_date').val(myVar)

但我没有正确获得日期。我必须在这里改变什么?

4

1 回答 1

1

您不能将Date构造函数与“25/03/2013”​​之类的字符串一起使用。

这是更正的版本

joinDate = $('#user_join_date')
joinDate.blur ->
  regex=/(\d{2})\/(\d{2})\/(\d{4})/
  m=regex.exec(joinDate.val())
  probationDate = new Date(m[3], m[2]-1, m[1])
  myVar = new Date(probationDate.setMonth probationDate.getMonth() + 6)
  $('#user_probation_end_date').val(myVar)

我正在匹配您格式中的字符串,然后使用日期构造函数创建

新日期(年、月、日、小时、分钟、秒、毫秒)

来自:http ://www.w3schools.com/js/js_obj_date.asp

这是我制作的 JSFIDDLE:http: //jsfiddle.net/edi9999/psD3J/

于 2013-07-24T10:23:27.153 回答