Ajouter des jours à la date JavaScript

Comment ajouter des jours à la "date" actuelle en utilisant JavaScript. JavaScript dispose-t-il d'une fonction intégrée comme la fonction " AddDay " de .Net ?

Vous pouvez en créer un avec :-

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

var date = new Date();

alert(date.addDays(5));

Ceci prend en charge l'incrémentation automatique du mois si nécessaire. Par exemple :

8/31 + 1 jour deviendra 9/1.

Le problème de l'utilisation directe de setDate est qu'il s'agit d'un mutateur et qu'il vaut mieux éviter ce genre de choses. L'ECMA a jugé bon de traiter Date comme une classe mutable plutôt que comme une structure immuable.

Commentaires (16)
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

Faites attention, car cela peut être délicat. Lorsque vous définissez " demain ", cela ne fonctionne que parce que sa valeur actuelle correspond à l'année et au mois de " aujourd'hui ". Cependant, si vous définissez une date numérique comme "32", cela fonctionnera normalement pour déplacer la date au mois suivant.

Commentaires (7)

Ces réponses me semblent confuses, je préfère :

var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);

getTime() nous donne les millisecondes depuis 1970, et 86400000 est le nombre de millisecondes dans un jour. Donc, ms contient les millisecondes pour la date désirée.

L'utilisation du constructeur de millisecondes donne l'objet date désiré.

Commentaires (4)