使用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
我做错了什么?
西蒙
答案 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天添加到今天日期已经增加的值,这不再是'今天'