目前,我正在按以下方式导入Moment和Moment范围, 需要给定2个日期之间的日期数组,以便可以迭代日期
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
}
}
答案 0 :(得分:0)
您可以克隆开始日期并一次添加一天,将格式化的日期推送到数组中。
通过使用while循环和isBefore
,您可以确保迭代直到结束日期。
您可能要确保它在开始和结束的边界处正确运行。即:是否要包含或排除输入天数?
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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
答案 1 :(得分:0)
要执行您要的操作,因为您已经拥有moment-range
,您可以执行以下操作:
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')))
如果您不需要立即进行格式化,则只需:
Array.from(range.by('day')) // for your range
这里是example in node,但在您的情况下,它与导入by
相似