Angular 2 : How to filter records between two dates? Angular 2 : How to filter records between two dates? typescript typescript

Angular 2 : How to filter records between two dates?


Thanks all for your answers thats help me out. This is the solution of my problem

{ "id":1, "name":"Jack", "date":"01-06-2017"},{ "id":2, "name":"Allen", "date":"07-08-2017"},{ "id":3, "name":"Annie", "date":"22-11-2017"},let start = "01-02-2017;let end = "06-07-2017";let.selectedMembers = this.members.filter(m => new Date(m.date) >= new Date(startDate) && new Date(m.date) <= new Date(endDate));console.log(selectedMembers);

Thanks all your answers, thats help me to figure out this :) ..


u need first to transform the dates from string to Date type in order to compare them properly then do something like:

let members: any[] = [{        "id": 1,        "name": "Jack",        "date": "01-06-2017" // this should be of object Date()    },    {        "id": 2,        "name": "Allen",        "date": "07-08-2017" // this should be of object Date()    },    {        "id": 3,        "name": "Annie",        "date": "22-11-2017" // this should be of object Date()        }];    let start = "01-02-2017;  // this should be of object Date()    let end = "06-07-2017"; // this should be of object Date()        let selectedMembers = members.filter(m => {          if ( m.date > start && m.date < end) // or you can cast here to Date()            return m;    });    console.log(selectedMembers);


To sort dates stored as strings, you should use an ISO based format:https://es.wikipedia.org/wiki/ISO_8601

The line you wrote will work with dates like that:

{  "id":1,  "name":"Jack",  "date":"2017-06-01" }, {  "id":2,  "name":"Allen",  "date":"2017-08-07" }, {  "id":3,  "name":"Annie",  "date":"2017-11-22" }

If not, you have to parse the strings to date object and use them in the comparison. Something like this:

let startDate = new Date('2017-05-01'); let endDate = new Date('2017-09-01); let selectedMembers = this.members.filter(m => new Date(m.date) > startDate && new Date(m.date) < endDate);