Cómo añadir días a la fecha actual en JavaScript

Moataz Farid 12 octubre 2023
  1. Entendiendo la clase de Date de JavaScript
  2. Añadiendo días a Date() en JavaScript
  3. Agregar días a Date() usando prototype en JavaScript
Cómo añadir días a la fecha actual en JavaScript

Este tutorial introducirá cómo añadir un nuevo día a la fecha actual o una fecha personalizada en JavaScript. Primero introduciremos lo que es la Date y los diferentes métodos en la clase de “Fecha” de JavaScript.

Entendiendo la clase de Date de JavaScript

En JavaScript, la clase Date es básicamente el número de milisegundos que pasaron desde la medianoche del 1 de enero de 1970, UTC. No es lo mismo que la época UNIX, que se utiliza en las computadoras para registrar los valores de fecha y hora.

Para empezar a usar la clase Date, necesitamos crear un nuevo objeto Date con el que tratar, y la creación de ese objeto se puede hacer de muchas maneras como podemos ver en el siguiente ejemplo:

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);

Cuando llamamos al constructor Date() sin dar ningún parámetro, el objeto Date tendrá la fecha y la hora actuales; mientras que cuando se le da un parámetro, ese objeto tendrá la cadena de caracteres analizada que representa ese punto de tiempo.

Si damos el valor apropiado de los componentes de fecha y hora como en el ejemplo new Date(2020, 07, 17), el índice debe comenzar en 0, no en 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)

Frecuentemente usamos muchos métodos de la clase Date; explicaremos algunos de ellos en las siguientes secciones.

Añadiendo días a Date() en JavaScript

Supongamos que queremos crear una función que añada un cierto número de días en JavaScript. En ese caso, podemos implementarla usando el método de clase Date llamado getDate() que devuelve el día del mes, entre 1 y 31, para la fecha seleccionada según la hora local, y el método setDate() para establecer el día del mes para esa fecha específica.

Por ejemplo, si la fecha es 11/02/2020, añadir un día será 12/02/2020. Si era 31/03/2020, será 01/04/2020 ya que el único rango válido es [1, 31].

Veamos el siguiente ejemplo de añadir días al objeto 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)

Si estamos interesados en añadir ese día a hoy, podemos reemplazar new Date(date) con new Date() en el código anterior, o podemos pasar la new Date() a la función directamente.

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)

Agregar días a Date() usando prototype en JavaScript

Si queremos crear un prototipo para la clase Date que tome sólo la entrada numérica como el número de días a sumar, podemos implementarlo como el siguiente ejemplo:

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)

Artículo relacionado - JavaScript Date