1

ここには 2 つの入力フィールドがあります。1 つは入社日、もう 1 つは試用期間の終了日です。

要件は次のとおりです。ユーザーが入社日入力フィールドに 2013 年 7 月 24 日を入力した場合、その日付から 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)

私はあなたのフォーマットで文字列を一致させてから、日付コンストラクターで作成しています

new Date(年、月、日、時、分、秒、ミリ秒)

から: http://www.w3schools.com/js/js_obj_date.asp

ここに私が作った JSFIDDLE があります: http://jsfiddle.net/edi9999/psD3J/

于 2013-07-24T10:23:27.153 に答える