Je voudrais qu'une variable contienne la date d'hier au format DD-MM-YYYY
en utilisant Moment.js. Donc, si aujourd'hui est le 15-04-2015, j'aimerais soustraire un jour et avoir le 14-4-2015.
J'ai essayé quelques combinaisons comme celle-ci:
startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');
et ça:
startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');
et aussi ceci:
startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')
Mais je ne comprends pas ...
Vous avez plusieurs bizarreries. Le premier a été édité dans votre message, mais il avait à voir avec l'ordre dans lequel les méthodes étaient appelées.
.format
renvoie une chaîne. String n'a pas de méthode subtract
.
Le deuxième problème est que vous soustrayez la journée, mais ne la sauvegardez pas en tant que variable.
Votre code devrait alors ressembler à:
var startdate = moment();
startdate = startdate.subtract(1, "days");
startdate = startdate.format("DD-MM-YYYY");
Cependant, vous pouvez enchaîner cela ensemble; cela ressemblerait à:
var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");
La différence est que nous fixons la date de début aux changements que vous apportez le jour du début, car le moment est destructif.
startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');
Essaye ça:
var duration = moment.duration({'days' : 1});
moment().subtract(duration).format('DD-MM-YYYY');
Cela vous donnera 14-04-2015
- aujourd'hui 15.04.2015
Alternativement, si votre version de momentjs est inférieure à 2.8.0, vous pouvez utiliser:
startdate = moment().subtract('days', 1).format('DD-MM-YYYY');
Au lieu de cela:
startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');
startdate = moment().subtract(1, 'days').startOf('day')
Je pense que vous l'avez eu dans cette dernière tentative, il vous suffit de saisir la chaîne .. dans la console de Chrome ..
startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY');
"14-04-2015"
startdate = moment();
startdate.subtract(1, 'd');
myString = startdate.format('DD-MM-YYYY');
"14-04-2015"
myString
"14-04-2015"
Dans angularjs moment = "^ 1.3.0"
moment('15-01-1979', 'DD-MM-YYYY').subtract(1,'days').format(); //14-01-1979
or
moment('15-01-1979', 'DD-MM-YYYY').add(1,'days').format(); //16-01-1979
``
var date = new Date();
var targetDate = moment(date).subtract(1, 'day').toDate(); // date object
Maintenant, vous pouvez formater comment vous voulez voir cette date ou vous pouvez comparer cette date avec une autre etc.
toDate () function est le point.