web-dev-qa-db-fra.com

Ajout de jours à l'aide de Moment.JS

Avoir quelques problèmes avec simplement l'ajout d'une journée à quelques dates dans un projet Appcelerator en utilisant moment.js

Tout ce que je veux faire, c'est saisir la date du jour, puis l'afficher au format DD (01), puis obtenir les 6 prochains jours également.

Voici ce que j'essaye:

var todayDate = moment();

var day1 = todayDate.format("DD");
var day2 = todayDate.add(1, 'days').format("DD");
var day3 = todayDate.add(2, 'days').format("DD");
var day4 = todayDate.add(3, 'days').format("DD");
var day5 = todayDate.add(4, 'days').format("DD");
var day6 = todayDate.add(5, 'days').format("DD");
var day7 = todayDate.add(6, 'days').format("DD");

Mais, la sortie que j'obtiens est la suivante:

[INFO] :   31
[INFO] :   01
[INFO] :   03
[INFO] :   06
[INFO] :   10
[INFO] :   15
[INFO] :   21

Il devrait se lire:

[INFO] :   31
[INFO] :   01
[INFO] :   02
[INFO] :   03
[INFO] :   04
[INFO] :   05
[INFO] :   06

Qu'est-ce que je fais mal?

Simon

14
Simon Hume

Vous ajoutez des jours à la même variable:

dire todayDate est 31. Première ligne, vous ajoutez 1 jour à todayDate, il devient donc 01. Ensuite, vous ajoutez 2 jours à todayDate (qui est maintenant "01") ça devient donc 03 etc ...

Faites cela à la place (en fonction de ce dont vous avez besoin, bien sûr):

var day1 = moment().format("DD");
var day2 = moment().add(1, 'days').format("DD");
var day3 = moment().add(2, 'days').format("DD");
var day4 = moment().add(3, 'days').format("DD");
var day5 = moment().add(4, 'days').format("DD");
var day6 = moment().add(5, 'days').format("DD");
var day7 = moment().add(6, 'days').format("DD");

ou ajoutez simplement 1 à chaque fois ;)

var todayDate = moment();

var day1 = todayDate.format("DD");
var day2 = todayDate.add(1, 'days').format("DD");
var day3 = todayDate.add(1, 'days').format("DD");
var day4 = todayDate.add(1, 'days').format("DD");
var day5 = todayDate.add(1, 'days').format("DD");
var day6 = todayDate.add(1, 'days').format("DD");
var day7 = todayDate.add(1, 'days').format("DD");
24
Cyril N.

Vous vous référez à la même variable

Vous ajoutez N jours à todayDate, donc la méthode suivante add- ajoutera N jours à la valeur déjà augmentée de la date d'aujourd'hui, qui n'est plus 'aujourd'hui'

2
Artur Stary