Adicionar dias à data actual em JavaScript

Moataz Farid 12 outubro 2023
  1. Compreender a classe Date em JavaScript
  2. Adicionando Dias a Date() em JavaScript
  3. Adicionar dias a Date() Utilizando prototype em JavaScript
Adicionar dias à data actual em JavaScript

Este tutorial irá introduzir como adicionar um novo dia à data actual ou uma data personalizada em JavaScript. Vamos primeiro introduzir o que é Date e diferentes métodos na classe Date em JavaScript.

Compreender a classe Date em JavaScript

Em JavaScript, a classe Date é basicamente o número de milissegundos que passaram desde a meia-noite de 1 de Janeiro de 1970, UTC. Não é o mesmo que a época Unix, que é utilizada em computadores para registar valores de data e hora.

Para começar a utilizar a classe Date, precisamos de criar um novo objecto Date para lidar, e a criação desse objecto pode ser feita de muitas maneiras, como podemos ver no exemplo seguinte:

var myDate = new Date();
var myDateOne = new Date('August 19, 2020 23:15:30');
var myDateTwo = new Date('2020-08-17T03:24:00');
var myDateThree = new Date(2020, 07, 17);
var myDateFour = new Date(2020, 07, 17, 3, 24, 0);

console.log(myDate);
console.log(myDateOne);
console.log(myDateTwo);
console.log(myDateThree);
console.log(myDateFour);

Quando chamamos o construtor de Date() sem dar parâmetros, o objecto Date terá a data e hora actuais; enquanto que quando lhe é dado um parâmetro, esse objecto terá a string parsed que representa esse ponto do tempo.

Se dermos o valor apropriado dos componentes de data e hora como no exemplo new Date(2020, 07, 17), o índice deve começar a partir de 0 e não de 1.

Resultado:

Fri Nov 13 2020 19:16:58 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 23:15:30 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 03:24:00 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 00:00:00 GMT+0200 (Eastern European Standard Time)
Mon Aug 17 2020 03:24:00 GMT+0200 (Eastern European Standard Time)

Utilizamos frequentemente muitos métodos da classe Date; explicaremos alguns deles nas secções seguintes.

Adicionando Dias a Date() em JavaScript

Suponhamos que queremos criar uma função que acrescenta um certo número de dias em JavaScript. Nesse caso, podemos implementá-la utilizando o método de classe Date chamado getDate() que retorna o dia do mês, entre 1 e 31, para a data seleccionada de acordo com a hora local, e o método setDate() para definir o dia do mês para essa data específica.

Por exemplo, se a data for 11/02/2020, acrescentando um dia será 12/02/2020. Se for 31/03/2020, será 01/04/2020, pois o único intervalo válido será [1, 31].

Vejamos o seguinte exemplo de adição de dias ao objecto Date.

function addDaysToDate(date, days) {
  var res = new Date(date);
  res.setDate(res.getDate() + days);
  return res;
}


var tmpDate = new Date(2020, 07, 20);  // Augest 20, 2020
console.log(addDaysToDate(tmpDate, 2));

Resultado:

Sat Aug 22 2020 00:00:00 GMT+0200 (Eastern European Standard Time)

Se estivermos interessados em adicionar esse dia a hoje, podemos substituir new Date(date) por new Date() no código acima, ou podemos passar a new Date() directamente para a função.

var tmpDate = new Date();                // Today
console.log(addDaysToDate(tmpDate, 2));  // today + 2

Resultado:

Sun Nov 15 2020 22:55:06 GMT+0200 (Eastern European Standard Time)

Adicionar dias a Date() Utilizando prototype em JavaScript

Se quisermos criar um protótipo para a classe Date que leva apenas a entrada numérica como o número de dias a adicionar, podemos implementá-lo como o exemplo seguinte:

Date.prototype.addDays =
    function(noOfDays) {
  var tmpDate = new Date(this.valueOf());
  tmpDate.setDate(tmpDate.getDate() + noOfDays);
  return tmpDate;
}

var myDate = new Date();         // today
console.log(myDate.addDays(2));  // today + 2

Resultado:

Sun Nov 15 2020 22:59:06 GMT+0200 (Eastern European Standard Time)

Artigo relacionado - JavaScript Date