Quelle est la façon la plus simple pour décrémenter une date en Javascript en 1 jour?

StackOverflow https://stackoverflow.com/questions/31931

  •  09-06-2019
  •  | 
  •  

Question

J'ai besoin de décrémenter un Javascript date de 1 jour, de sorte qu'il roule en arrière à travers les mois/années correctement.C'est, si j'ai une date d'aujourd'Hui, je veux obtenir la date du jour d'Hier.

Il semble toujours à prendre plus de code que nécessaire quand je le fais, alors je me demandais si il y a un moyen plus simple.

Quelle est la façon la plus simple de faire cela?

[Edit:Juste pour éviter toute confusion dans la réponse ci-dessous, c'est un JavaScript question, pas une Java un.]

Était-ce utile?

La solution

var d = new Date();
d.setDate(d.getDate() - 1);

console.log(d);

Autres conseils

var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
 day.setDate(day.getDate() -1); //will be wrong

ce sera le retour de mauvais jour.en vertu de l'UTC -03:00, check pour

var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17

Meilleure utilisation:

var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything

getDate()-1 devrait faire l'affaire

Exemple rapide:

var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));

console.log(decrementedDate);

setDate(dayValue)

dayValue est un entier de 1 à 31, représentant le jour du mois.

à partir de https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate

Le comportement de la résolution de votre problème (et le mien) semble être hors de la gamme de spécifications.

Ce qui semble être nécessaires sont addDate(), addMonth(), addYear() ...fonctions.

Travailler avec des dates en JS peut être un mal de tête.Donc, la façon la plus simple est d'utiliser moment.js pour la date des opérations.

Pour soustraire un jour:

const date = moment().subtract(1, 'day')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top