怎样才能通过Moment.js获得最近的日期呢?

2022-02-28 00:00:00 javascript momentjs

日期列表:

const datesToBeChecked = [ '2020-07-06', '2020-07-13', '2020-07-20' ]

要检查的日期

const dateToCheckFor = '2020-07-07';

如何使用Moment.js获取日期数组中日期的最近日期?
在本例中,我希望函数返回2020-07-13
我在网上找到了几个答案,但没有一个使用YYYY-MM-DD格式,也没有一个使用oment.js。我想使用Moment.js来实现这一点,谢谢!


解决方案

可以使用diff method比较日期。

const datesToBeChecked = ['2020-07-06', '2020-07-13', '2020-07-20']
const dateToCheckFor = '2020-07-07';

let nearestDate;

datesToBeChecked.forEach(date => {
  let diff = moment(date).diff(moment(dateToCheckFor), 'days');
  if (diff > 0) {
    if (nearestDate) {
      if (moment(date).diff(moment(nearestDate), 'days') < 0) {
        nearestDate = date;
      }
    } else {
      nearestDate = date;
    }
  }
});

console.log(nearestDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.26.0/moment.min.js"></script>

相关文章