Utk*_*rsh 4 javascript datetime momentjs
我想x使用 获取当前日期的最后日期Moment.js。
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);
Run Code Online (Sandbox Code Playgroud)
这段代码的结果如下:
[ 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") ]
Run Code Online (Sandbox Code Playgroud)
这是相同的日期,而不是我想要的每次迭代的前一个日期。
我知道问题出在该行上,date = moment()因为它返回的是当前时间戳,而不是每一步的前一个时间戳。
我怎样才能解决这个问题?
您将相同的变量推入数组,并始终从当前时刻减去 1。
date在循环内声明变量并减去i
for(...){
let date = moment();
date.subtract(i, 'day')
...
}
Run Code Online (Sandbox Code Playgroud)
for(...){
let date = moment();
date.subtract(i, 'day')
...
}
Run Code Online (Sandbox Code Playgroud)
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);Run Code Online (Sandbox Code Playgroud)
尝试这个
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++) {
let date = moment();
date.subtract(i, 'day').format('DD-MM-YYYY');
dates.push(date);
}
console.log(dates);
Run Code Online (Sandbox Code Playgroud)
在你的代码中,你循环遍历,每次只减 1,而不是每次实际更新数字,这就是为什么你只得到相同的日期,我已经更新了你的代码,所以当它循环时,它会更新天数