moment.js,获取两个日期间的所有日期

发布于 2022-09-13 00:05:51 字数 246 浏览 31 评论 0

enumerateDaysBetweenDates(startDate, endDate) {
    let daysList = [];
    daysList.push(
      moment(startDate).format("MM-DD dddd"),
      moment(endDate).format("MM-DD dddd")
    );
    // 。。。。
    return daysList;
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苍风燃霜 2022-09-20 00:05:51
const enumerateDaysBetweenDates = (startDate, endDate) => {
      let daysList = [];
      const start = moment(startDate);
      const end = moment(endDate);
      const day = end.diff(start, "days");
      daysList.push(start.format("MM-DD dddd"));
      for (let i = 1; i <= day; i++) {
        daysList.push(start.add(1, "days").format("MM-DD dddd"));
      }
      return daysList;
    };
    
 enumerateDaysBetweenDates('2021-06-09','2021-07-09')
鲜肉鲜肉永远不皱 2022-09-20 00:05:51
enumerateDaysBetweenDates=function(startDate, endDate) { // 假定你已经保证了startDate 小于endDate,且二者不相等
        let daysList = [];
        let SDate=moment(startDate);
        let EDate=moment(endDate);
        let xt;
        daysList.push(SDate.format("MM-DD dddd"));
        while( SDate.add(1,"days").isBefore( EDate) ){  // 注意这里add方法处理后SDate对象已经改变。      
            daysList.push( SDate.format("MM-DD dddd") );
        } 
        daysList.push( EDate.format("MM-DD dddd") );
        return daysList;
  }
console.log( enumerateDaysBetweenDates('2021-06-09','2021-06-12'))
console.log( enumerateDaysBetweenDates('2021-06-09 23:00','2021-06-12 01:00'))
console.log( enumerateDaysBetweenDates('2021-06-09 13:00','2021-06-12 21:00'))

此外还可以考虑 https://github.com/rotaready/... 中的moment-range 专用插件来处理范围问题。

前面理解错了moment.js 中add方法应用情况,它是会改变原moment对象的!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文