Javascript - Get Mois Précédents La Date
Si j'ai une variable qui renvoie une date au format jj MMM aaaa, donc 28 Août 2014, comment puis-je obtenir la date du mois précédent.
Je peux modifier les mois via:
$scope.DateMapping = function (months) {
var myVariable = "28 Aug 2014"
var makeDate = new Date(myVariable);
prev = new Date(makeDate.getFullYear(), makeDate.getMonth()+1, 1);
});
Essentiellement, c'est l'ajout de l'un pour le Mois.. Mais comment puis-je tenir compte des années, donc, si la date actuelle est le 12 Déc 2014, la précédente serait de 12 Janv 2013?
De mon application en utilisant AngularJS peut rendre l'utilisation de filtres.
Mise à JOUR:
var myVariable = "28 Aug 2014"
var makeDate = new Date(myVariable);
var prev = new Date(makeDate.getFullYear(), makeDate.getMonth()+1, makeDate.getMonth());
console.log(myVariable)
console.log(makeDate)
console.log(prev)
Output:
28 Aug 2014
Thu Aug 28 2014 00:00:00 GMT+0100 (GMT Standard Time)
Mon Sep 01 2014 00:00:00 GMT+0100 (GMT Standard Time)
Comment se fait-bien que le mois est incrémenté d'une unité à la journée est de montrer 01 au lieu de 28?
Ceci est géré automatiquement.
Parce que vous êtes de passage makeDate.getMonth() comme le "jour" argument de New Date(année, mois, jour)
new Date(2014, 12, 1)
résultats dans Jan 1st 2015
.Parce que vous êtes de passage makeDate.getMonth() comme le "jour" argument de New Date(année, mois, jour)
OriginalL'auteur Oam Psy | 2014-10-21
Vous devez vous connecter pour publier un commentaire.
Juste soustraire le nombre de mois à partir du mois de paramètre et ne vous inquiétez pas si la valeur est négatif. Elle sera traitée correctement.
J'espère que les gens lisent le code ci-dessus correctement, le second ne veut pas dire "soustraire un mois à compter de la date du jour", cela signifie en fait aller le mois 0 (Jan) et soustraire un mois, ce qui va à l'arrière de décembre de l'année précédente. Attention à bien respecter le commentée de la partie à côté d'elle
OriginalL'auteur RaYell
Pour toutes les activités liées à la date de je recommande l'utilisation de la moment.js bibliothèque et que vous êtes en utilisant AngularJS il y a une bibliothèque à cela: https://github.com/urish/angular-moment.
Prendre un coup d'oeil à la moment.js de la documentation et vous le verrez, il est beaucoup plus facile de manipuler les dates en JavaScript: http://momentjs.com/docs/#/get-set/month/
Vous pourrez facilement être en mesure de résoudre le problème auquel vous êtes confronté, par exemple:
maintenant serait alors égal à 01/12/2013.
Espérons que cette aide!
Le Moment n'est plus recommandé jusqu'à son prêt pour treeshaking. date-pnr est recommandé pour Angular5. (ma recommandation personnelle)
OriginalL'auteur Leon Revill
Vous pouvez utiliser moment.js fonction de soustraction pour cela.
OriginalL'auteur Davide Pastore