@WarriorKodeK

Как найти ближайшую дату?

Всем привет.
Есть у меня сегодняшняя дата ( new Date () )
Как мне найти ближайшую дату к ней, но не брать значение прошлые даты??

Например:
// https://date-fns.org/v2.13.0/docs/closestTo
const closestTo = require('date-fns/closestTo')

const dateToCompare = new Date() // 2021-8-23
closestTo(dateToCompare, [
  new Date(2021, 8, 22),
  new Date(2021, 8, 24),
])
// => оно мне вернет  new Date(2021, 8, 22)

Должно выдать завтра   new Date(2021, 8, 24)


Чистый JS:
const closestTo = (dateToCompare, datesArray) => {
  const distances = datesArray.map(date => Math.abs(date - dateToCompare))
  return datesArray[distances.indexOf(Math.min(...distances))]
}

const dateToCompare = new Date() // 2021-8-23
closestTo(dateToCompare, [
   new Date(2021, 8, 22),
  new Date(2021, 8, 24),
])
// =>  Тоже самое


Должно выдать завтра   new Date(2021, 8, 24)
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
@antares4045
Если я правильно понял формулировку вопрса, то его можно свести к "найти наименьшую дату из списка, исключая те, что были раньше, чем опорная дата"
const closestTo = (dateToCompare, datesArray) => {
  const buff = datesArray.filter(date => date >=dateToCompare).sort()
  return buff.length ? buff[0] : undefined
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы