Увеличение даты в JavaScript - PullRequest
       25

Увеличение даты в JavaScript

363 голосов
/ 09 сентября 2010

Мне нужно увеличить значение даты на один день в JavaScript.

Например, у меня есть значение даты 2010-09-11, и мне нужно сохранить дату следующего дня в переменной JavaScript.

Как мне увеличить дату на день?

Ответы [ 14 ]

0 голосов
/ 18 сентября 2018

const date = moment (). Add (14, "days"). ToDate () // здесь мы добавляем 14 дней с сегодняшним днем ​​

0 голосов
/ 23 февраля 2018

Результатом является строковое представление завтрашней даты. Используйте new Date (), чтобы получить сегодняшнюю дату, добавив один день, используя Date.getDate () и Date.setDate (), и преобразовав объект Date в строку.

  const tomorrow = () => {
      let t = new Date();
      t.setDate(t.getDate() + 1);
      return `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
        t.getDate()
      ).padStart(2, '0')}`;
    };
    tomorrow();
0 голосов
/ 03 октября 2017
 Date.prototype.AddDays = function (days) {
    days = parseInt(days, 10);
    return new Date(this.valueOf() + 1000 * 60 * 60 * 24 * days);
}

Пример

var dt = new Date();
console.log(dt.AddDays(-30));
console.log(dt.AddDays(-10));
console.log(dt.AddDays(-1));
console.log(dt.AddDays(0));
console.log(dt.AddDays(1));
console.log(dt.AddDays(10));
console.log(dt.AddDays(30));

Результат

2017-09-03T15:01:37.213Z
2017-09-23T15:01:37.213Z
2017-10-02T15:01:37.213Z
2017-10-03T15:01:37.213Z
2017-10-04T15:01:37.213Z
2017-10-13T15:01:37.213Z
2017-11-02T15:01:37.213Z
0 голосов
/ 09 октября 2014

Не совсем уверен, что это БАГ (протестировано Firefox 32.0.3 и Chrome 38.0.2125.101), но следующий код не будет работать в Бразилии (-3 по Гринвичу):

Date.prototype.shiftDays = function(days){    
  days = parseInt(days, 10);
  this.setDate(this.getDate() + days);
  return this;
}

$date = new Date(2014, 9, 16,0,1,1);
$date.shiftDays(1);
console.log($date+"");
$date.shiftDays(1);
console.log($date+"");
$date.shiftDays(1);
console.log($date+"");
$date.shiftDays(1);
console.log($date+"");

Результат:

Fri Oct 17 2014 00:01:01 GMT-0300
Sat Oct 18 2014 00:01:01 GMT-0300
Sat Oct 18 2014 23:01:01 GMT-0300
Sun Oct 19 2014 23:01:01 GMT-0200

Добавление одного часа к дате, заставит его работать идеально (но не решит проблему).

$date = new Date(2014, 9, 16,0,1,1);

Результат:

Fri Oct 17 2014 01:01:01 GMT-0300
Sat Oct 18 2014 01:01:01 GMT-0300
Sun Oct 19 2014 01:01:01 GMT-0200
Mon Oct 20 2014 01:01:01 GMT-0200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...