【问题标题】:Getting the last X days date with Moment.js使用 Moment.js 获取最后 X 天的日期
【发布时间】:2018-12-17 21:42:21
【问题描述】:

我想使用 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() 行,因为它返回的是当前时间戳,而不是每一步的前一个时间戳。

我该如何解决这个问题?

【问题讨论】:

    标签: javascript datetime momentjs


    【解决方案1】:

    试试这个

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

    在您的代码中,您正在循环遍历并且每次仅减去 1 而实际上并没有每次都更新数字,这就是为什么您只能获得相同的日期,我已经更新了您的代码,以便在循环时它会更新数字天数

    【讨论】:

    • 是的,我错过了那部分。谢谢。非常感谢您的帮助。
    【解决方案2】:

    您将相同的变量推送到数组,并且总是从当前时刻减去 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);
    &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2018-03-12
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多