Добавление часов к объекту Даты JavaScript?

Это поражает меня, что объект Даты JavaScript не реализует добавить функцию никакого вида.

Я просто хочу функцию, которая может сделать это:

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

Это кажется действительно hackish, хотя - и это даже работает?

351
задан Mark Amery 22 September 2019 в 06:42
поделиться

3 ответа

Сам JavaScript имеет ужасную дату / время API. Тем не менее, вы можете сделать это на чистом JavaScript:

Date.prototype.addHours = function(h) {
  this.setTime(this.getTime() + (h*60*60*1000));
  return this;
}
350
ответ дан 23 November 2019 в 00:24
поделиться

В библиотеке Datejs есть добавление.

А вот методы даты JavaScript . Кеннебек мудро упомянул getHours () и setHours ();

5
ответ дан 23 November 2019 в 00:24
поделиться
Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}

Тест:

alert(new Date().addHours(4));
364
ответ дан 23 November 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: