Comment ajouter des jours à la date actuelle en JavaScript

Moataz Farid 12 octobre 2023
  1. Comprendre la classe JavaScript Date
  2. Ajout de jours à Date() en JavaScript
  3. Ajouter des jours à Date() en utilisant le prototype en JavaScript
Comment ajouter des jours à la date actuelle en JavaScript

Ce tutoriel présente comment ajouter un nouveau jour à la date actuelle ou une date personnalisée en JavaScript. Nous allons d’abord présenter ce qu’est la Date et les différentes méthodes de la classe JavaScript Date.

Comprendre la classe JavaScript Date

En JavaScript, la classe Date est essentiellement le nombre de millisecondes qui se sont écoulées depuis minuit le 1er janvier 1970, UTC. Ce n’est pas la même chose que l’époque UNIX, qui est utilisée dans les ordinateurs pour enregistrer les valeurs de la date et de l’heure.

Pour commencer à utiliser la classe Date, nous devons créer un nouvel objet Date à traiter, et la création de cet objet peut se faire de plusieurs façons comme nous pouvons le voir dans l’exemple suivant :

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

Lorsque nous appelons le constructeur Date() sans donner de paramètres, l’objet Date aura la date et l’heure actuelles ; tandis que lorsqu’on lui donne un paramètre, cet objet aura la chaîne analysée représentant ce point de temps.

Si nous donnons la valeur appropriée aux composantes de la date et de l’heure comme dans l’exemple new Date(2020, 07, 17), l’index devrait commencer à 0, et non à 1.

Production :

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)

Nous utilisons fréquemment de nombreuses méthodes de la classe Date ; nous en expliquerons certaines dans les sections suivantes.

Ajout de jours à Date() en JavaScript

Supposons que nous voulions créer une fonction qui ajoute un certain nombre de jours en JavaScript. Dans ce cas, nous pouvons l’implémenter en utilisant la méthode de la classe Date nommée getDate() qui retourne le jour du mois, entre 1 et 31, pour la date sélectionnée en fonction de l’heure locale, et la méthode setDate() pour définir le jour du mois pour cette date spécifique.

Par exemple, si la date est le 11/02/2020, l’ajout d’un jour sera le 12/02/2020. Si c’était le 31/03/2020, ce sera le 01/04/2020 car la seule plage valable est [1, 31].

Voyons l’exemple suivant d’ajout de jours à l’objet 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));

Production :

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

Si nous souhaitons ajouter ce jour à aujourd’hui, nous pouvons remplacer new Date(date) par new Date() dans le code ci-dessus, ou nous pouvons passer la new Date() à la fonction directement.

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

Production :

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

Ajouter des jours à Date() en utilisant le prototype en JavaScript

Si nous voulons créer un prototype de la classe Date qui ne prend que l’entrée numérique comme nombre de jours à ajouter, nous pouvons l’implémenter comme dans l’exemple suivant :

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

Production :

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

Article connexe - JavaScript Date