Ajouter des jours à une date en JavaScript

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous allons explorer la manière d'ajouter des jours à une date donnée en JavaScript. Nous allons créer une fonction qui prend une date et un nombre de jours à ajouter, et renvoie la date résultante au format chaîne de caractères. Nous utiliserons le constructeur Date et diverses méthodes Date pour effectuer les calculs de dates et renvoyer la date finale.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 96%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Fonction pour ajouter des jours à une date

Voici une fonction qui peut calculer la date de n jours à partir de la date donnée et renvoyer sa représentation sous forme de chaîne de caractères.

Pour utiliser la fonction, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez le constructeur Date pour créer un objet Date à partir du premier argument.
  3. Utilisez Date.prototype.getDate() et Date.prototype.setDate() pour ajouter n jours à la date donnée.
  4. Utilisez Date.prototype.toISOString() pour renvoyer une chaîne de caractères au format yyyy-mm-dd.

Voici le code de la fonction :

const addDaysToDate = (date, n) => {
  const d = new Date(date);
  d.setDate(d.getDate() + n);
  return d.toISOString().split("T")[0];
};

Vous pouvez tester la fonction à l'aide des exemples suivants :

addDaysToDate("2020-10-15", 10); // '2020-10-25'
addDaysToDate("2020-10-15", -10); // '2020-10-05'

Résumé

Félicitations ! Vous avez terminé le laboratoire Ajouter des jours à une date. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.