web-dev-qa-db-ja.com

Moment.JSを使用した日数の追加

Moment.jsを使用してAppceleratorプロジェクトのいくつかの日付に1日を追加するだけでいくつかの問題が発生する

私がやりたいのは、今日の日付を取得してDD形式(01)で表示し、次の6日間も取得することです。

これが私が試していることです:

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");

しかし、私が得る出力は次のとおりです:

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

それは読むべきです:

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

何が悪いのですか?

サイモン

14
Simon Hume

同じ変数に日数を追加します。

たとえば、todayDateは31です。最初の行では、todayDateに1日を追加するため、01になります。次に、todayDateに2日を追加します(現在は "01")。だから03などになる...

代わりにこれを行います(もちろん、必要なものによって異なります)。

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");

または、毎回1を追加するだけです;)

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.

同じ変数を参照している

todayDateにN日を追加するため、次のadd- methodは、すでに「今日」ではない今日の日付のすでに増加した値にN日を追加します

2
Artur Stary