2017-10-13 13 views
-1

私は期間カウンター(クリシェ)を作ろうとしています。また、HTMLとJavascriptでも初心者です。私はそれを作って、ユーザーは自分の期間が始まった日付を入れることができます。そして、日付として出てくるように、彼らが入力した日数に31を追加したいと思います。 私のこれまでのスクリプト:間違いなくユーザーが入力した日に31日を追加する方法

function theDate() { 
var m = document.getElementById("inmonth").value; 
Number(m).toString(); 
var d = document.getElementById("inday").value; 
var y = document.getElementById("inyear").value; 
var nd = new Date(m + "/" + d + "/" + y); 
var thirtyDaysLater = 31; 
var fstart = nd.setDate(nd.getDate() + thirtyDaysLater); 
document.getElementById("enddate").innerHTML = "Last Period End Date: " + 
nd; 
document.getElementById("nextdate").innerHTML = "Next Period Start Date: " + 
fstart; 
+0

[JavaScript日付の日数を追加](https://stackoverflow.com/questions/563406/add-days-to-javascript-date) – kyle

+0

@ kyle-複製可能ではありません。OPの主な問題は次のとおりです。 * setDate *からの予期しない戻り値組み込みパーサを使用することも問題ですが、この場合は問題はありません。 – RobG

答えて

0

重複しますがSETDATE両方が数(Xが経過してからの秒数)を返し、あなたがこのような何かをしたいと思いますので、日付を変更します。

// After setting nd and thirty days later 
var fstart = new Date(nd); //copy the date 

fstart.setDate(fstart.getDate() + thirtyDaysLater); 
// Now fstart contains the modified date and nd contains the initial one. 

そこから、必要に応じて使用してください。

短い

var a = new Date(b) // date Object a copy of b 
a.setDate(num) // Returns a number (which identifies the date) and modifies a 
b = new Date(a.setDate(num)) // a is modified, b is now a copy of a. 

とfunsies

// a contains the current date - 30 days (it properly accounts for months) 
var a = new Date(new Date().setDate(new Date().getDate() - 30)); 
0

のためにあなたは、組み込みのパーサを使用しないでください。むしろ、文字列を作成し、それを信頼できないパーサに渡し、一貫した結果を得ることを望むならば、そのパーツをDateコンストラクタに直接渡すだけです。

また、SETDATEが所定の位置に日付を変更し、そうFSTARTのためには必要ありません:これは、入力のいずれかの検証を行いません

function theDate() { 
 
    var y = document.getElementById("inyear").value; 
 
    var m = document.getElementById("inmonth").value; 
 
    var d = document.getElementById("inday").value; 
 

 
    var nd = new Date(y, m-1, d); 
 
    document.getElementById("enddate").innerHTML = "Last Period End Date: " + nd.toString(); 
 

 
    var thirtyDaysLater = 31; 
 
    nd.setDate(nd.getDate() + thirtyDaysLater); 
 
    document.getElementById("nextdate").innerHTML = "Next Period Start Date: " + nd.toString(); 
 
}
Day: <input id="inday" value="5"><br> 
 
Month: <input id="inmonth" value="10"><br> 
 
Year: <input id="inyear" value="2017"><br> 
 
<button onclick="theDate()">Calculate</button> 
 
<p id="enddate"> 
 
<p id="nextdate">

は、あなたが望むことそれを追加する。

関連する問題