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。
这种方法不起作用,我得到了几个月和几天的关闭。有什么建议吗?
答案 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);