Я ищу всю сеть и не нахожу решения для своего случая. Мне нужно отфильтровать результат Json по дате начала и окончания даты.
Я использую Angular 7, этот «dateRangeFilter» только для, например; мой код такой:
<tr *ngFor = "let caixa of result | dateRangeFilter: '08/03/2019' , '14/03/2019' ">
<td>{{caixa.tipo}}</td>
<td>{{caixa.data}}</td>
<td>{{caixa.hora}}</td>
<td>{{caixa.cliente}}</td>
<td>{{caixa.valor | currency:'BRL':symbol:'1.2-2'}}</td>
</tr>





Не рекомендуется использовать каналы для фильтрации (по соображениям производительности). Лучшим решением является использование стандартных конструкций JS/ES6/.. для фильтрации ваших данных до того, как они будут привязаны к вашему визуальному представлению. Вы можете использовать некоторую пользовательскую логику фильтра с .filter.
вы можете найти пример в уже существующем сообщении: Фильтровать массив в массиве по дате между двумя датами
извлекать:
data.series = data.series.filter((item: any) =>
item.date.getTime() >= fromDate.getTime() && item.date.getTime() <= toDate.getTime()
);
Отлично, большое спасибо. Я делаю этот код, и он отлично работает.
Но дату начала и дату окончания я хочу получить из входных данных Дата, а функция фильтра не читает переменные:
function dataRange(obj) {
if (obj.id >= this.dateBegin && obj.id <= this.dateEnd) {
return true;
}
}
Но если я поставлю String Date, все будет идеально!
function dataRange(obj) {
if (obj.id >= "2019-03-01" && obj.id <= "2019-03-05") {
return true;
}
}
Как использовать переменную дату ??
Или вы можете использовать момент momentjs.com/docs. Пример:
range = moment().range(startDate, endDate); range.contains(date); // true or false