AngularJS - Фильтр по дате - PullRequest
0 голосов
/ 14 января 2019

У меня есть список элементов, которые пришли в результате из API . На мой взгляд, я представляю результаты с ng-repeat .

<div ng-repeat="item in items"></div>

вот мой API ответ.

2017-01-17T09:35:38.429Z
2017-01-03T10:00:00.000Z
2017-01-27T14:34:55.179Z

Мне нужно отфильтровать по дате, т. Е. Если предметы старше 3 месяцев, то показать.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вы выводите товар в зависимости от вашего состояния, в вашем случае он должен быть не старше 3 месяцев.

<div ng-repeat="item in items"> <div ng-if="!isOlderThan3Months(item)">item</div> </div>

function isOlderThan3Months(date){
   return new Date().getTime() - new Date(date).getTime() > 1000 /*ms*/ * 60/*s*/ * 60/*min*/ * 24/*h*/ * 30/*days*/ * 3/*months*/ )
}

Где condition может вызывать функцию для вычисления разницы между датами. Посмотрите здесь для нескольких способов сделать это.

0 голосов
/ 14 января 2019

при условии, что это массив:

let items = ["2017-01-17T09:35:38.429Z",
"2017-01-03T10:00:00.000Z",
"2017-01-27T14:34:55.179Z"]

сделать это

let threeMonthsAgo = new Date(Date.now() - 7776000000)
items = items.filter(date => { threeMonthsAgo.before( (new Date(date)) ) })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...