javascriptdatetime

How to add hours to a Date object?


It amazes me that JavaScript's Date object does not implement an add function of any kind.

I simply want a function that can do this:

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

function Date.prototype.addHours(h) {
  // How do I implement this?
}

I would simply like some pointers in a direction.

Like this:

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

This seems really hackish though - and does it even work?


Solution

  • JavaScript itself has terrible Date/Time API's. Nonetheless, you can do this in pure JavaScript:

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