Найти максимальную дату из строкового массива дат, используя функцию max из date-fns - PullRequest
0 голосов
/ 25 сентября 2018

Массив строк даты создается из объекта данных бэкэнда, как показано ниже:

const dates: string[] = this.data.map((item:any) => item.date.jsdate);

В результате получается

dates = [
    Thu Jan 12 2015 00:00:00 GMT+0530 (India Time), 
    Tue Feb 25 2015 00:00:00 GMT+0530 (India Time), 
    Sun Jan 28 2016 00:00:00 GMT+0530 (India Time)
]

typeof (date) равен "object"

Как найти самую последнюю дату среди массива jsdates?

Можно ли применить функцию max для date-fns?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Преобразуйте каждый объект в Date и сравните, используя функцию getTime().

var dates = [
    'Thu Jan 12 2015 00:00:00 GMT+0530 (India Time)', 
    'Tue Feb 25 2015 00:00:00 GMT+0530 (India Time)', 
    'Sun Jan 28 2016 00:00:00 GMT+0530 (India Time)'
]

console.log(
  dates.sort((a,b)=>new Date(b).getTime() - new Date(a).getTime())[0]
)
0 голосов
/ 25 сентября 2018

Я могу предложить одно решение, используя моментов (https://momentjs.com/) библиотека.

Вы можете отсортировать даты, используя:

dates = dates.sort((a,b) => moment(a).diff(moment(b));

Тогдаесли вы хотите самую последнюю дату, вы можете взять последний элемент из этого массива:

return dates[dates.length-1];

Вы также можете сделать это без мгновений:

dates = dates.sort((a,b) => new Date(b) - new Date(a));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...