【问题标题】:How to get the list of date in between start and end date using moment js [duplicate]如何使用moment js获取开始日期和结束日期之间的日期列表[重复]
【发布时间】:2019-04-01 09:31:41
【问题描述】:

使用moment js根据开始和结束日期获取日期列表。

例如,我有两个日期,一个是开始日期和结束日期。我的开始日期是2019-04-02,我的结束日期是2019-05-16,我需要这两个日期之间的所有日期。

我的输出将是["2019-04-02", "2019-04-03", "2019-04-04", ..., "2019-05-16"] js 时刻有可能吗?

【问题讨论】:

  • 您是否已经有要应用开始和结束日期的数据,或者您只想生成两个给定日期之间的日期数组?
  • 大约 5 年前有一个活跃度很高的问题,问的是完全相同的问题(更好的“这是我尝试过的”问题)stackoverflow.com/questions/23795522/…

标签: javascript momentjs


【解决方案1】:

这应该可行,但下次请记住在发布问题之前添加您尝试过的内容

var day1 = moment("2019-05-01");
var day2 = moment("2019-04-06");
var result = [moment({...day2})];

while(day1.date() != day2.date()){
  day2.add(1, 'day');
  result.push(moment({ ...day2 }));  
}
console.log(result.map(x => x.format("YYYY-MM-DD")));
<script src="https://momentjs.com/downloads/moment.min.js"></script>

【讨论】:

    【解决方案2】:

        var dates = [];
        var startDate = moment('2019-04-02', 'YYYY-MM-DD');
        dates.push(startDate.format('YYYY-MM-DD'));          
        while(!startDate.isSame('2019-05-16')){
            startDate = startDate.add(1, 'days');
            dates.push(startDate.format('YYYY-MM-DD'));
        }
    
        console.log(dates);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.2.1/moment.min.js"></script>

    【讨论】:

      【解决方案3】:

      类似下面的东西会起作用。我们设置开始和结束日期,创建一个空数组并通过在每次迭代中添加一天来循环遍历这些天,并将当前日期添加到我们的列表中。

      var start = moment("2019-01-01")
      var end = moment("2019-01-30");
      
      var list = [];
      
      for (var current = start; current <= end; current.add(1, 'd')) {
          list.push(current.format("YYYY-MM-DD"))
      }
      

      【讨论】:

        【解决方案4】:
        var enumerateDaysBetweenDates = function(startDate, endDate) {
        var dates = [];
        
        var currDate = moment(startDate).startOf('day');
        var lastDate = moment(endDate).startOf('day');
        
        while(currDate.add(1, 'days').diff(lastDate) < 0) {
            console.log(currDate.toDate());
            dates.push(currDate.clone().toDate());
        }
        
        return dates;
        

        };

        【讨论】:

          猜你喜欢
          • 2019-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多