2012-03-15 8 views
0

こんにちは私はこの形式の日付を持っています03/08/12ここで、03は月、08は日、12は年です。今私はそれに日を追加したいと思います。私は、次の試してみましたが、正確な結果にjavascript固有の日付形式で日を追加する方法

checkindate = new Date($("#checkindate").val()); 
    checkindate.setDate(checkindate.getDate()+no_of_nights); 
    $("#checkoutdate").val((checkindate.getMonth()+1)+"/"+checkindate.getDate()+"/"+checkindate.getYear()); 

を取得しかし、予想外の結果を与え、私はそれが追加された日付の一部に理解することができませんされていません。どのように私はこれを行うことができます私に教えてくれる?

よろしくあなたが今持っていることは、あなたが31 + 5を持っている可能性を意味デイ値にno_of_nightsを追加しているので、SETDATEは()あなたと期待される結果を与えることはありませんすべての状況で動作しません

+0

潜在的な複製http://stackoverflow.com/questions/563406/add-days-to-datetime-using-java-script – jbabey

答えて

0

値は36です。

追加する月、日、年などの数を把握する必要があります。

Javascriptは、1970年1月1日からの経過時間であり、通常の時間ではありません。

+0

dude no_of_nightsは日数を意味しない変数です。私はあなたの答えを理解していませんでした。説明できますか? – user1272333

+0

@ user1272333、私は変数が何であるか理解していますが、setDate()のドキュメントを読んで、値1〜31を受け取ります。したがって、3月31日の現在の日付を取得し、5日と言う変数を追加すると、JavaScriptが日付オブジェクトに正しく追加されないため、予期しない結果が発生します。 setDate()メソッドは、現在の月に設定されているDateオブジェクトの曜日値を設定しようとしていることを前提としています。入力パラメータとして36を理解していません。 – bdparrish

0

コードは完全に動作しますが、no_of_nightsは文字列でないことを確認してください。これはおそらくあなたの問題です:が文字列の場合、加算演算checkindate.getDate()+no_of_nightsは、連結演算になります。

8 + 5 = 13 
8 + "5" = "85" 

非常に異なる!

解決策:使用parseInt(no_of_nights)

関連する問題