Pesquisar Json em um campo Data, Javascript

3 respostas
E

var usuarios = [

{nome: “João”, id: 1, dataInicio: 15/02/2016},

{nome: “Maria”, id: 2, dataInicio: 17/02/2016},

{nome: “José”, id: 3, dataInicio: 16/02/2016},

{nome: “Ana”, id: 4, dataInicio: 10/02/2016},

];
function getId(nome) {

for (var i = 0; i < usuarios.length; i++) {

if (usuarios[i].nome == nome) return i;

}

}
console.log(getId(Maria)); //  2

Gostaria de uma funçao em Javascript, que possa pesquisar entre datas de: 10/02/2016 até 15/02/2016 e traria

var usuarios = [

{nome: João, id: 1, dataInicio: 15/02/2016},

{nome: Ana, id: 4, dataInicio: 10/02/2016},

];

3 Respostas

L

Recomendo fortemente vc manipular datas usando o MomentJS.

D

Como disse @Lucas_Camara, utilize o framework Javascript MomentJS, com o isBetween

CDN

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment-with-locales.min.js

Codigo

var usuarios = [
    {nome: "João", id: 1, dataInicio: '15/02/2016'},
    {nome: "Maria", id: 2, dataInicio: '17/02/2016'},
    {nome: "José", id: 3, dataInicio: '16/02/2016'},
    {nome: "Ana", id: 4, dataInicio: '10/02/2016'},
];

function isBetween(dataInicio, dataFim, lista)
{
     var dI = moment(dataInicio, "DD/MM/YYYY");
     var dF = moment(dataFim, "DD/MM/YYYY");
     var dL = [];
     for(var i = 0; i < lista.length; i++)
     {
        if (moment(lista[i].dataInicio, "DD/MM/YYYY").isBetween(dI, dF, null, '[]'))
        {        
        	   dL.push(lista[i]);             
        }
     }
     return dL;
}

console.log(isBetween("10/02/2016", "15/02/2016", usuarios));

Observação: na DataInicio eu coloque aspas, entre a data.

DEMO

E

funfou, obrigado pelas dicas, deu certo.

Criado 10 de agosto de 2016
Ultima resposta 10 de ago. de 2016
Respostas 3
Participantes 3