如何添加10秒到一个JavaScript日期对象?

就像这样:

var timeObject = new Date()     
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;

当前回答

试试这个方法。

Date.prototype.addSeconds = function(seconds) {
  var copiedDate = new Date(this.getTime());
  return new Date(copiedDate.getTime() + seconds * 1000);
}

只需调用并分配new Date().addSeconds(10)

其他回答

const timeObject = new Date(); 
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);

另请参阅: 如何添加30分钟的JavaScript日期对象?

如果你需要在当前时间上增加10秒,你可以使用:

const date = new Date();
date.setUTCSeconds(date.getUTCSeconds() + 10); // Change 10 to any number of seconds

javascript中的Date()对象并不是那么聪明。

如果您只关注添加秒数,似乎可以很顺利地处理事情,但如果您试图添加X秒数,那么将X分钟数和小时数等添加到同一个Date对象中,您最终会遇到麻烦。因此,我只使用setSeconds()方法并将数据转换为秒(这工作得很好)。

如果有人能演示使用所有的set方法向全局Date()对象添加时间,并有最终的时间出来正确,我想看到它,但我有一种感觉,一个set方法是在给定的Date()对象上使用,混合它们会导致混乱。

var vTime = new Date();

var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );

vTime.setSeconds(iSecondsToAdd);

这里有一些文档可能会有所帮助:

几年前,我写了一个“通用的”日期函数:

function addToDate({time_unit, operator, offset_value }) {
        const date = new Date();
  operator = operator == "after" ? "+" : "-";
  switch (time_unit) {
    case "seconds":
        date.setSeconds(eval(`${date.getSeconds()} ${operator} ${offset_value}`));
    break;

    case "hours":
        date.setHours(eval(`${date.getHours()} ${operator} ${offset_value}`));
      break;

    case "minutes":
        date.setMinutes(eval(`${date.getMinutes()} ${operator} ${offset_value}`));

      break;
    case "days":
        date.setDate(eval(`${date.getDate()} ${operator} ${offset_value}`));
      break;

    case "months":
        date.setMonth(eval(`${date.getMonth()} ${operator} ${offset_value}`));

      break;
    case "years":
        date.setFullYear(eval(`${date.getFullYear()} ${operator} ${offset_value}`));
      break;
    default:
      break;
  }

  return date;
}

const new_date = addToDate({time_unit:'seconds','operator':'after','offset_value':10});

console.log(new_date.toISOString());

还有一个setSeconds方法:

var t = new Date();
t.setSeconds(t.getSeconds() + 10);

有关其他Date函数的列表,您应该查看MDN


setSeconds将正确处理换行的情况:

var d; d =新日期('2014-01-01 10:11:55'); alert(d.getMinutes() + ':' + d.getSeconds());/ / 34) d.setSeconds(d.getSeconds() + 10); alert(d.getMinutes() + ':0' + d.getSeconds());/ / 12:05)