首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ReactJs中使用MomentJs获取给定2个日期的日期数组

在ReactJs中使用MomentJs获取给定2个日期的日期数组
EN

Stack Overflow用户
提问于 2018-10-23 16:11:18
回答 2查看 854关注 0票数 0

目前我正在导入时刻和时刻范围如下,需要在给定的2个日期之间的日期数组,以便日期可以迭代

代码语言:javascript
复制
import Moment from 'moment';
import {extendMoment} from 'moment-range';

import React, {Component} from 'react';

class T extends Component {
  constructor(props) {
    const start = moment("2018-10-14", 'YYYY-MM-DD');
    const end = moment("2018-10-20", 'YYYY-MM-DD');
    const range = moment.range(start, end);
    //need an array of dates in'YYYY-MM-DD' to itarate
  }
}
EN

回答 2

Stack Overflow用户

发布于 2018-10-23 16:26:17

您可以克隆开始日期并一次添加一天,将格式化的日期推送到数组中。

通过使用while循环和isBefore,您可以确保不断迭代,直到到达结束日期。

您可能希望确保它在开始和结束边界处的行为正确。即:您希望它包含还是排除输入的天数?

代码语言:javascript
复制
const start = moment("2018-10-14", 'YYYY-MM-DD');
const end = moment("2018-10-20", 'YYYY-MM-DD');

const current = start.clone();
const result = [];

while (current.isBefore(end)) {
  result.push(current.format("YYYY-MM-DD"));
  current.add(1, "day");
}

console.log(result);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

票数 0
EN

Stack Overflow用户

发布于 2018-10-25 09:09:49

既然你已经有了moment-range,要做你想做的事情,你可以这样做:

代码语言:javascript
复制
const range = moment.range(moment("2018-10-14"), moment("2018-10-20"));

console.log(Array.from(range.by('day')).map(x => x.format('YYYY-MM-DD')))

如果您不需要立即格式化,则只需:

代码语言:javascript
复制
Array.from(range.by('day'))  // for your range

这是一个example in node,但与您的示例类似,只需导入by即可

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52944166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档