Aggiungi giorni alla data corrente in JavaScript

Moataz Farid 12 ottobre 2023
  1. Comprendere la classe Date JavaScript
  2. Aggiungi giorni a Date() in JavaScript
  3. Aggiungi giorni a Date() utilizzando prototipo in JavaScript
Aggiungi giorni alla data corrente in JavaScript

Questo tutorial introdurrà come aggiungere un nuovo giorno alla data corrente o una data personalizzata in JavaScript. Per prima cosa introdurremo cos’è Date e diversi metodi nella classe Date di JavaScript.

Comprendere la classe Date JavaScript

In JavaScript, la classe Date è fondamentalmente il numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970, UTC. Non è lo stesso dell’epoca Unix, che viene utilizzata nei computer per registrare i valori di data e ora.

Per iniziare a utilizzare la classe Date, dobbiamo creare un nuovo oggetto Date con cui occuparci, e la creazione di quell’oggetto può essere eseguita in molti modi, come possiamo vedere nel seguente esempio:

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 chiamiamo il costruttore Date() senza dare alcun parametro, l’oggetto Date avrà la data e l’ora correnti; mentre quando viene fornito un parametro, quell’oggetto avrà la stringa analizzata che rappresenta quel momento.

Se diamo il valore appropriato dei componenti di data e ora come nell’esempio new Date(2020, 07, 17), l’indice dovrebbe iniziare da 0, non da 1.

Produzione:

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)

Usiamo spesso molti metodi della classe Date; ne spiegheremo alcuni nelle prossime sezioni.

Aggiungi giorni a Date() in JavaScript

Supponiamo di voler creare una funzione che aggiunge un certo numero di giorni in JavaScript. In tal caso, possiamo implementarlo usando il metodo della classe Date chiamato getDate() che restituisce il giorno del mese, tra 1 e 31, per la data selezionata secondo l’ora locale, e il metodo setDate() per impostare il giorno del mese per quella data specifica.

Ad esempio, se la data è 11/02/2020, l’aggiunta di un giorno sarà 12/02/2020. Se era 31/03/2020, sarà 01/04/2020 poiché l’unico intervallo valido è [1, 31].

Vediamo il seguente esempio di aggiunta di giorni all’oggetto 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));

Produzione:

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

Se siamo interessati ad aggiungere quel giorno a oggi, possiamo sostituire new Date(date) con new Date() nel codice sopra, oppure possiamo passare la new Date() alla funzione direttamente.

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

Produzione:

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

Aggiungi giorni a Date() utilizzando prototipo in JavaScript

Se vogliamo creare un prototipo per la classe Date che prende solo l’input numerico come numero di giorni da aggiungere, possiamo implementarlo come il seguente esempio:

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

Produzione:

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

Articolo correlato - JavaScript Date