javascript – MomentJS在给定的持续时间内获得下一个指定日期

我有以下变量

let startDay = moment(this.props.startDay); // DD-MM-YYYY HH:mm:ss
let endDay = moment(this.props.endDay); // DD-MM-YYYY HH:mm:ss

我收到一周的一天作为一个字符串

let day= this.props.day; // 'Ex: Monday'

我一直在寻找在startDay和endDay持续时间内第一天设置的第一天;我如何在momentJS中执行此操作.

最佳答案 您可以从开始日期循环到结束日期,并且在每次迭代中,可以检查日期是否匹配.如果找到匹配项,请停止循环.

let startDay = moment('24-10-2018 12:00:00', 'DD-MM-YYYY HH:mm:ss');
let endDay = moment('01-11-2018 12:00:00', 'DD-MM-YYYY HH');
let day = 'Monday';

while (endDay.diff(startDay, 'day') !== 0) {
  if (startDay.format('dddd') === day) {
    break;
  }
  
  startDay.add(1, 'day');
}

console.log(startDay.format('dddd, DD-MM-YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
点赞