本文介绍了使用Moment.js获取最近X天的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要使用Moment.js
获取当前日期的最后x
日期。
const moment = require('moment');
let dates;
const dates = [];
const NUM_OF_DAYS = 12; // get last 12 dates.
for (let i = 0; i < NUM_OF_DAYS; i++) {
date = moment();
date.subtract(1, 'day').format('DD-MM-YYYY');
dates.push(date);
}
console.log(dates);
此代码的结果如下:
[ moment("2018-07-09T11:40:04.663"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675"),
moment("2018-07-09T11:40:04.675") ]
此日期与我希望的每个迭代的日期相同,而不是以前的日期。
我知道问题出在date = moment()
行,因为它在每个步骤返回当前时间戳而不是上一个时间戳。
如何修复此问题?
推荐答案
您正在将同一变量推入数组,并且始终从当前时刻减去1。
在循环内声明date
变量并减去i
for(...){
let date = moment();
date.subtract(i, 'day')
...
}
const dates = [];
const NUM_OF_DAYS = 12; // get last 12 dates.
for (let i = 0; i < NUM_OF_DAYS; i++) {
let date = moment();
date.subtract(i, 'day').format('DD-MM-YYYY');
dates.push(date);
}
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
这篇关于使用Moment.js获取最近X天的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!