使用Moment.JS添加天数

时间:2015-03-31 13:14:52

标签: javascript date titanium-mobile appcelerator momentjs

使用moment.js在Appcelerator项目中添加一天到几个日期时遇到一些问题

我想做的就是抓住今天的日期,然后以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

我做错了什么?

西蒙

2 个答案:

答案 0 :(得分:22)

您将天数添加到同一变量:

todayDate是31。 第一行,您向todayDate添加1天,因此它变为01。 然后你将{2}添加到todayDate(现在是#34; 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");

答案 1 :(得分:2)

您指的是同一个变量

您将N天添加到todayDate,因此下一个add - 方法会将N天添加到今天日期已经增加的值,这不再是'今天'