令我惊讶的是,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 hrs in ms*/)?
不过,这似乎确实很骇人-甚至行得通吗?
#1楼
这是JavaScript date方法 。 肯纳贝克明智地提到了getHours()和setHours();
#2楼
JavaScript本身具有可怕的日期/时间API。 但是,您可以使用纯JavaScript来执行此操作:
Date.prototype.addHours = function(h) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
}
#3楼
Date.prototype.addHours= function(h){
this.setHours(this.getHours()+h);
return this;
}
测试:
alert(new Date().addHours(4));
#4楼
当更改为DST或从DST更改时,kennerbec建议的版本将失败,因为它是设置的小时数。
this.setUTCHours(this.getUTCHours()+h);
将增加h
小时, this
独立的实时系统特殊性。 杰森·哈维格(Jason Harwig)的方法同样有效。
#5楼
您可以使用momentjs http://momentjs.com/库。
var moment = require('moment');
foo = new moment(something).add(10, 'm').toDate();
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3176186