1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptのDateオブジェクトに時間を追加する?

2022-03-23 10:14:52

質問

JavaScriptのDateオブジェクトは、どんな種類の追加関数も実装していないことに驚かされます。

単純にこれができる関数が欲しい。

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

これは本当にハックしているように見えますが、うまくいくのでしょうか?

どのように解決するのですか?

JavaScript自体、Date/Time APIがひどい。とはいえ、純粋なJavaScriptで行うことも可能です。

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