1 votes

Comment obtenir 30 jours avant la date actuelle ?

J'ai un champ de saisie de calendrier de début et un champ de saisie de calendrier de fin. Nous voulons que le champ de saisie du calendrier de début soit par défaut 30 jours avant la date actuelle et que le champ de saisie du calendrier de fin soit la date actuelle. Voici mes variables de date.

var today = new Date(),
    dd    = today.getDate(),
    mm    = today.getMonth(),
    yyyy  = today.getFullYear(),
    month = ["January", "February", "March",
        "April", "May", "June", "July", "August",
        "September", "October" "November", "December"],
    startdate = month[mm] + ", " + yyyy.toString();

La date de fin serait quelque chose comme var enddate = startdate - 30; De toute évidence, cela ne fonctionnera pas.

Ainsi, si la date actuelle est le 30 décembre 2011, je voudrais que la date de début soit le 1er décembre 2011.

EDIT : On a répondu à ma question... en quelque sorte. Date.today(); y Date.today().add(-30); fonctionne mais j'ai besoin de la date au format de January 13, 2012 . Pas Fri Jan 13 2012 10:48:56 GMT -055 (EST) . Une aide ?

PLUS D'ÉDITION : Au moment où nous écrivons ces lignes, nous sommes en 2018. Utilisez simplement Moment.js . C'est le meilleur.

200voto

Rory McCrossan Points 69838

Pour soustraire des jours d'un objet JS Date, vous pouvez utiliser la fonction setDate() ainsi que la date à partir de laquelle le calcul doit commencer. Cette méthode renvoie un horodatage d'époque sous la forme d'un nombre entier. Pour le convertir en date, vous devrez à nouveau le fournir à la méthode Date() constructeur d'objet. L'exemple final ressemblerait à ceci :

var today = new Date();
var priorDate = new Date(new Date().setDate(today.getDate() - 30));

console.log(today)
console.log(priorDate);

166voto

maerics Points 47743

Essayez d'utiliser l'excellent Datejs Bibliothèque de dates JavaScript (l'original n'est plus maintenu, vous pouvez donc être intéressé par cette fourchette activement entretenue à la place) :

Date.today().add(-30).days(); // or...
Date.today().add({days:-30});

[Edit]

Voir aussi l'excellent Moment.js Bibliothèque de datation JavaScript :

moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');

101voto

Nahn Points 538

Voici une vilaine solution pour vous :

var date = new Date(new Date().setDate(new Date().getDate() - 30));

46voto

Marc B Points 195501
startDate = new Date(today.getTime() - 30*24*60*60*1000);

Le site .getTime() renvoie un horodatage JS standard (millisecondes depuis le 1er janvier 1970) sur lequel vous pouvez utiliser des opérations mathématiques classiques, qui peuvent être renvoyées directement à l'objet Date.

14voto

WasiF Points 1943

Obtenez le 30e jour suivant à partir d'aujourd'hui

let now = new Date()
console.log('Today: ' + now.toUTCString())
let next30days = new Date(now.setDate(now.getDate() + 30))
console.log('Next 30th day: ' + next30days.toUTCString())

Obtenez le formulaire du 30e jour aujourd'hui

let now = new Date()
console.log('Today: ' + now.toUTCString())
let last30days = new Date(now.setDate(now.getDate() - 30))
console.log('Last 30th day: ' + last30days.toUTCString())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X