J'ai besoin de définir une date qui serait dans 30 jours à partir de maintenant en tenant compte des mois qui sont 28,29,30,31 jours afin qu'elle ne saute aucun jour et affiche exactement 30 jours à partir de maintenant. Comment puis je faire ça?

9
Victor 26 oct. 2011 à 23:55

6 réponses

Meilleure réponse

L'objet JavaScript "Date ()" vous couvre:

var future = new Date();
future.setDate(future.getDate() + 30);

Cela fera juste la bonne chose. (Il est un peu déroutant que les getter / setters du jour du mois portent les noms qu'ils portent.)

33
Pointy 26 oct. 2011 à 19:56

J'ai écrit une bibliothèque de wrapper de date qui aide à analyser, manipuler et formater les dates.

https://github.com/timrwood/moment

Voici comment vous le feriez avec Moment.js

var inThirtyDays = moment().add('days', 30);
7
timrwood 28 oct. 2011 à 21:59

Utilisation de l'objet Date natif avec une syntaxe simple et aucune bibliothèque externe:

var future = new Date('Jan 1, 2014');

future.setTime(future.getTime() + 30 * 24 * 60 * 60 * 1000); // Jan 31, 2014

Les fonctions Date setTime et getTime utilisent des millisecondes depuis le 1er janvier 1970 (lien).

5
Rich Apodaca 23 juin 2013 à 19:24

Essayez ce morceau de code:

const date = new Date();
futureDate = new Date(date.setDate(date.getDate() + 30)).toLocaleDateString();
0
nurealam siddiq 28 sept. 2019 à 18:18
var now = new Date();
var THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000;
var thirtyDaysFromNow = now + THIRTY_DAYS;
4
Domenic 27 oct. 2011 à 03:58

J'ai pu faire ce travail:

function() {
// Get local time as ISO string with offset at the end
var now = new Date();
now.setMonth(now.getMonth() + 1);
var pad = function(num) {
    var norm = Math.abs(Math.floor(num));
    return (norm < 10 ? '0' : '') + norm;
};
return now.getFullYear() 
    + '-' + pad(now.getMonth()+1)
    + '-' + pad(now.getDate());
}
-1
Ron Kinkade 14 nov. 2019 à 03:03