尝试在毫秒内添加3天到当前日期

时间:2012-10-09 08:22:03

标签: javascript 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);

我正在尝试获取当前日期,为其添加三天毫秒,并在当前3天后显示日期戳。例如 - 如果今天是10/09/2012,那么我希望它说10/12/2012。

这种方法不起作用,我得到了几个月和几天的关闭。有什么建议吗?

5 个答案:

答案 0 :(得分:47)

要添加时间,请获取当前日期,然后以毫秒为单位添加特定时间,然后使用以下值创建新日期:

// 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);

进一步解释; dataObj.setMilliseconds()不起作用的原因是因为它将dateobj的毫秒属性设置为指定值(介于0和999之间的值)。它不会以毫秒为单位设置对象的日期。

// 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

答案 1 :(得分:5)

如果您需要在javascript中进行日期计算,请使用moment.js

moment().add('days', 3).calendar();

答案 2 :(得分:5)

试试这个:

var dateObj = new Date(Date.now() + 86400000 * 3);

答案 3 :(得分:5)

使用此代码

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

val = val + days; 
dateObj = new Date(val); // ********important*********//
val = dateObj.getMonth() + 1 + "/" + dateObj.getDate() + "/" + dateObj.getFullYear(); 
alert(val);

答案 4 :(得分:0)

如果您想为更任意的 Date 对象(.now() 除外)执行此操作,您可以使用以下内容:

const initialDate = new Date("March 20, 2021 19:00");

const millisecondsToAdd = 30 * 24 * 60 * 60 * 1000; //30 days in milliseconds

const expiryDate = new Date(initialDate.valueOf() + millisecondsToAdd);