Javascript 如何在用户输入的日期上增加31天
所以我正在尝试做一个句点计数器(陈词滥调),我也是HTML和Javascript的初学者,请耐心听我说。我这样做是为了用户可以输入他们的周期开始的日期,我想在他们输入的天数中加上31天,这样就可以作为一个日期。 到目前为止,我的剧本是:Javascript 如何在用户输入的日期上增加31天,javascript,date,Javascript,Date,所以我正在尝试做一个句点计数器(陈词滥调),我也是HTML和Javascript的初学者,请耐心听我说。我这样做是为了用户可以输入他们的周期开始的日期,我想在他们输入的天数中加上31天,这样就可以作为一个日期。 到目前为止,我的剧本是: function theDate() { var m = document.getElementById("inmonth").value; Number(m).toString(); var d = document.getElementById("ind
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;
当然是重复的,但是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.
为了好玩
// a contains the current date - 30 days (it properly accounts for months)
var a = new Date(new Date().setDate(new Date().getDate() - 30));
您不应该使用内置解析器。与其构建一个字符串,将其交给一个不可靠的解析器并希望得到一致的结果,不如直接将部分交给日期构造函数 此外,setDate会修改当前的日期,因此无需fstart:
函数的日期(){
var y=document.getElementById(“inyear”).value;
var m=document.getElementById(“inmonth”).value;
var d=document.getElementById(“inday”).value;
var nd=新日期(y,m-1,d);
document.getElementById(“enddate”).innerHTML=“最后一个期间结束日期:”+nd.toString();
var thirtyDaysLater=31;
nd.setDate(nd.getDate()+ThirtySlater);
document.getElementById(“nextdate”).innerHTML=“下一期开始日期:”+nd.toString();
}
日期:
月份:
年份:
算计
可能重复的@kyle不是真正的重复,OP的主要问题是setDate的意外返回。使用内置解析器也是一个问题,但在本例中不会造成问题。