JavaScript的Date对象没有实现任何类型的add函数,这让我感到惊讶。

我只是想要一个函数,可以这样做:

var now = Date.now(); var fourHoursLater = now.addHours(4); 函数Date.prototype.addHours(h) { //我如何实现这个? }

我只是想要一些指路的指点。

我需要做字符串解析吗? 我可以使用setTime吗? 毫秒呢?

是这样的:

new Date(milliseconds + 4*3600*1000 /* 4 hours in ms */)?

这看起来真的很奇怪——它真的有用吗?


当前回答

如果你需要它作为一个字符串,例如:

var defaultTime: new Date().getHours() + 1 + ":" + new Date().getMinutes();

其他回答

两小时后找个约会对象,一句话。

您需要向new Date传递毫秒数。

let expiryDate = new Date(new Date().setHours(new Date().getHours() + 2));

        or

let expiryDate2 = new Date(Date.now() + 2 * (60 * 60 * 1000) );

let nowDate = new Date(); let expiryDate = new Date(new Date()。setHours(new Date().getHours() + 2)); let expiryDate2 = new Date(Date.now() + 2 * (60 * 60 * 1000)); console.log(‘现在’,nowDate); console.log(“到期”,expiryDate); console.log('expiry 2', expiryDate2);

Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}

测试:

alert(new Date().addHours(4));

您甚至可以在添加2小时后使用moment函数将日期格式化为所需的格式。

var time = moment(new Date(new Date().setHours(new Date().getHours() + 2))).format("YYYY-MM-DD");
    
console.log(time);

Datejs库中有一个添加。

这里是JavaScript日期方法。kennebec明智地提到了getHours()和setHours();

JavaScript本身有糟糕的日期/时间API。尽管如此,你可以在纯JavaScript中这样做:

Date.prototype.addHours = function(h) {
  this.setTime(this.getTime() + (h*60*60*1000));
  return this;
}