Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
227 views
in Technique[技术] by (71.8m points)

javascript - Trying to add 3 days in Milliseconds to current Date

var dateObj = new Date();
var val = dateObj.getTime();
//86400 * 1000 * 3  Each day is 86400 seconds
var  days = 259200000;

val = val + days;
dateObj.setMilliseconds(val);
val = dateObj.getMonth() + 1 + "/" + dateObj.getDate() + "/" + dateObj.getFullYear();
alert(val);

I am trying to take the current date, add three days of milliseconds to it, and have the date stamp show 3 days later from the current. For example - if today is 10/09/2012 then I would like it to say 10/12/2012.

this method is not working, I am getting the months and days way off. Any suggestions?

question from:https://stackoverflow.com/questions/12795767/trying-to-add-3-days-in-milliseconds-to-current-date

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To add time, get the current date then add, as milliseconds, the specific amount of time, then create a new date with the value:

// get the current date & time
var dateObj = Date.now();

// Add 3 days to the current date & time
//   I'd suggest using the calculated static value instead of doing inline math
//   I did it this way to simply show where the number came from
dateObj += 1000 * 60 * 60 * 24 * 3;

// create a new Date object, using the adjusted time
dateObj = new Date(dateObj);

To explain this further; the reason dataObj.setMilliseconds() doesn't work is because it sets the dateobj's milliseconds PROPERTY to the specified value(a value between 0 and 999). It does not set, as milliseconds, the date of the object.

// assume this returns a date where milliseconds is 0
dateObj = new Date();

dateObj.setMilliseconds(5);
console.log(dateObj.getMilliseconds()); // 5

// due to the set value being over 999, the engine assumes 0
dateObj.setMilliseconds(5000);
console.log(dateObj.getMilliseconds()); // 0

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...