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 */)?

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


当前回答

Datejs库中有一个添加。

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

其他回答

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

您需要向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);

这是一种获取递增或递减数据值的简单方法。

const date = new Date()
const inc = 1000 * 60 * 60 // an hour
const dec = (1000 * 60 * 60) * -1 // an hour

const _date = new Date(date)
return new Date(_date.getTime() + inc)
return new Date(_date.getTime() + dec)

最简单的方法是:

var d = new Date();
d = new Date(d.setHours(d.getHours() + 2));

它将使当前时间增加2小时。

d = 2021年1月30日星期六23:41:43 GMT+0500(巴基斯坦标准时间)。

d加2小时后的值= 2021年1月31日01:41:43 GMT+0500(巴基斯坦标准时间)。

检查它是否还没有定义。否则,在Date原型中定义它:

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

下面的代码将为一个日期增加4个小时(例如今天的日期):

var today = new Date();
today.setHours(today.getHours() + 4);

如果您尝试将4添加到23(请参阅文档),则不会导致错误:

如果指定的参数超出预期范围,setHours()将尝试更新date对象中的日期信息