
jeff albóndiga yang
Me sorprende que el objeto Date de JavaScript no implemente una función de adición de ningún tipo.
Simplemente quiero una función que pueda hacer esto:
var now = Date.now();
var fourHoursLater = now.addHours(4);
function Date.prototype.addHours(h) {
// How do I implement this?
}
Simplemente me gustaría algunos punteros en una dirección.
Me gusta esto:
new Date(milliseconds + 4*3600*1000 /* 4 hours in ms */)?
Sin embargo, esto parece realmente pirateado, ¿e incluso funciona?

jason harwig
JavaScript en sí mismo tiene terribles API de Fecha/Hora. No obstante, puedes hacer esto en JavaScript puro:
Date.prototype.addHours = function(h) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
}

kennebec
Date.prototype.addHours= function(h){
this.setHours(this.getHours()+h);
return this;
}
Prueba:
alert(new Date().addHours(4));

Pedro Mortensen
La versión sugerida por kennebec fallará al cambiar a o desde horario de veranoya que es el número de hora el que se configura.
this.setUTCHours(this.getUTCHours()+h);
agregará h
horas para this
independiente de las peculiaridades del sistema de tiempo.
El método de Jason Harwig también funciona.

Justicia Selorm Bruce
Creo que esto debería hacer el truco.
var nextHour = Date.now() + 1000 * 60 * 60;