2017-04-15 5 views
0

month変数に基づいて日付に月を追加しようとしていますが、入力フィールドから月を取り出して渡すときに間違った結果になります。変数を定義してsetMonthに渡すと正しい結果が得られます。ここJavaScript |変数を使用してmonth-dateを追加すると誤った結果が返される

はコードです:

私は静的な値を使用する場合:あなたはそれが正しい出力

を出力しますが、場合見ることができるよう

Sat Apr 01 2017 00:00:00 GMT+0530 (India Standard Time) 
1/6/2017 

.on('changeDate', function(e){ 

     var datea = new Date(e.date); 
     console.log(datea); 
     // var montha = $('#duration').val(); 
     // console.log(montha); 
     montha = 3 ; 
     datea.setMonth(datea.getMonth()+ montha); 
     datea = datea.getDate() + "/" + datea.getMonth() + "/" + datea.getFullYear(); 

     console.log(datea); 
     $('#end_date').val(datea); 

    }); 

コンソール出力を私は入力フィールドから月の値を取得しようとしています

.on('changeDate', function(e){ 

     var datea = new Date(e.date); 
     console.log(datea); 
     var montha = $('#duration').val(); 
     console.log(montha); 

     datea.setMonth(datea.getMonth()+ montha); 
     datea = datea.getDate() + "/" + datea.getMonth() + "/" + datea.getFullYear(); 

     console.log(datea); 
     $('#end_date').val(datea); 

    }); 

コンソール出力:

Sat Apr 01 2017 00:00:00 GMT+0530 (India Standard Time) 
3 
1/9/2019 

monthaは、出力結果が正しくない値3を有しているにもかかわらず。

私はこの

+0

1)あなたはコードを含めるように多くの問題に行くつもりなら、なぜ他の人が使用できるスニペットの実際の例を投稿しませんか?あなたはもっと早く答えを得るでしょう。 2)なぜあなたは3つの文字を保存しただけで "出力"と入力するのではなく、どこでも 'o/p'を使うのですが、混乱は1000倍になります。より明確な質問=より速い回答。 – vol7ron

+0

@ vol7ron o/pについて私の悪い。私はその投稿を編集しますが、実際のコードは、手元にある問題に関しては長すぎて不必要でした。そのため、私はコードの一部だけを投稿することにしました。 –

+1

はい、スニペットのデモンストレーションと操作が簡単であることを説明するだけで、コピーするように努力しました。とにかく、SOと幸運を歓迎します。 – vol7ron

答えて

2

を解決する助けてください、私は私のブラウザコンソールで確認を取って、私は問題が入力された値が数値型にキャストしていなかったことで原因かもしれないと思います。下の画像から、date1はsetMonth関数に3(数値型)を加え、正しい日付 "2017/7/..."を取得しています。ただし、date2はsetMonth関数に '3'(文字列型)を追加し、日付「2019/10/...」を取得します。

enter image description here

+0

それは* why *に答え、解決策は...? – RobG

+1

あなたの答えは正しいです。私はparseInt()で変数を解析して解決し、setMonthに渡してすべて正常に機能しました。 –

関連する問題