【问题标题】:Get last 7 days' dates as an array from today's date using momentJs, ReactJs使用 momentJs,ReactJs 从今天的日期获取最近 7 天的日期作为数组
【发布时间】:2018-10-24 11:33:50
【问题描述】:

参考my last quetsion如何从给定日期获取以前的日期

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

【问题讨论】:

  • 您能说明一下您的期望吗?日期数组?并在您尝试解决该问题的地方展示您的代码?
  • .format 返回一个字符串,因此您尝试在字符串上运行减法
  • 编辑更正,日期相同
  • 得到了解决方案!

标签: reactjs momentjs


【解决方案1】:

现代 ecmascript 方法

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

【讨论】:

    【解决方案2】:

    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】:

      仅供参考,那一刻有一个官方插件 (it is in their documentation) 关于范围,这使您可以通过(例如 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") ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-28
        • 1970-01-01
        • 2012-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多