如何向 Date 对象添加小时数?

2022-08-29 23:01:45

令我惊讶的是,JavaScript 的 Date 对象没有实现任何类型的 add 函数。

我只是想要一个可以做到这一点的函数:

var now = Date.now();
var fourHoursLater = now.addHours(4);

function Date.prototype.addHours(h) {

   // How do I implement this?

}

我只想在一个方向上指点一些。

  • 我需要执行字符串解析吗?

  • 我可以使用 setTime 吗?

  • 毫秒怎么样?

喜欢这个:

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

这似乎真的很麻烦 - 它甚至有效吗?


答案 1

JavaScript本身有可怕的日期/时间API。尽管如此,你可以在纯JavaScript中做到这一点:

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

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

测试:

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