使用momentJs和ReactJs从今天的日期获取最近7天的日期数组

3

关于我的上一个问题,如何从给定日期获取以前的日期。

let n=8
        while(n>0){
            console.log(n)
            resultDates.push(moment().subtract(1,"day"))
            n--;
            
        }
       
        console.log(resultDates);


你能澄清一下你具体期望什么吗?日期数组?并展示一下你尝试解决这个问题的代码? - iofjuupasli
.format返回一个字符串,所以你试图在字符串上运行减法。 - iofjuupasli
编辑并更正,获取相同的日期。 - SAN
找到解决方案了! - SAN
3个回答

3

const current = moment()
        let n=8
        while(n>0){
            console.log(n)
            resultDates.push(current.format("YYYY-MM-DD"))
            current.subtract(1,"day")
            n--;
            
        }


3

现代的ECMAScript方法

const today = moment();
const res = Array(7).fill().map(
  () => today.subtract(1, 'd').format('YYYY-MM-DD')
);

2

提醒一下,Moment官方有一个插件(在他们的文档中有介绍)关于时间范围,可以通过(nodejs 例如)轻松实现您想要的功能:

const Moment = require('moment');
const MomentRange = require('moment-range');
const moment = MomentRange.extendMoment(Moment);

const range = moment.range(moment().subtract(8,"day"), moment());

console.log(Array.from(range.by('day')))

这将会给你一个输出,例如:
[ moment("2018-10-16T17:08:21.560"),
  moment("2018-10-17T17:08:21.560"),
  moment("2018-10-18T17:08:21.560"),
  moment("2018-10-19T17:08:21.560"),
  moment("2018-10-20T17:08:21.560"),
  moment("2018-10-21T17:08:21.560"),
  moment("2018-10-22T17:08:21.560"),
  moment("2018-10-23T17:08:21.560"),
  moment("2018-10-24T17:08:21.560") ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接