Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Palucoski

Como filtrar por data com PHP+MySQL

Recommended Posts

Dae galera beleza? Seguinte, preciso fazer com que o usuário digite 1 intervalo de data (DI e DF) para buscar no BD os registros para ficarem no data grid, como eu resolvo a questão do problema de formato de data? Alguem sabe se tem como fazer isso? Algo do tipo formatar e jogar na variável para fazer o filtro na condição do comando SQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi muito bem.

 

Voce quer uma instrução SQL para buscar o intervalo entre duas datas, ou entrar com um intervalo de datas e procurar as aproximadas...

 

é..

 

nao entendi a questao.. =P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi muito bem.

 

Voce quer uma instrução SQL para buscar o intervalo entre duas datas, ou entrar com um intervalo de datas e procurar as aproximadas...

 

é..

 

nao entendi a questao.. =P

Preciso de algo que transforme a data do padrão BR pro padrão MySQL que todos ja conhecem, para fazer uma Query na tabela tendo como condição a data.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom,

 

se for o padrao timestamp tenta isso..

 

/* Função responsável em transformar o parâmetro com formato [dd/mm/yyyy hh:mm:ss] em timestamp*/

 

function timestamp($data){

$data = explode(" ", str_replace(array("/", ":"), " ", $data));

$data = @mktime($data[3],$data[4],$data[5],$data[1],$data[0],$data[2]);

return $data;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom,

 

se for o padrao timestamp tenta isso..

 

/* Função responsável em transformar o parâmetro com formato [dd/mm/yyyy hh:mm:ss] em timestamp*/

 

function timestamp($data){

$data = explode(" ", str_replace(array("/", ":"), " ", $data));

$data = @mktime($data[3],$data[4],$data[5],$data[1],$data[0],$data[2]);

return $data;

}

Nao kra, minha base possui o formato AAAA-MM-DD o padrao do mysql, eu preciso fazer com que o usuário digite uma data DD/MM/AAAA e, com alguma funcao que eu nao consegui desenvolver ele passe pro formato AAAA-MM-DD pra fazer o filtro na consulta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom,

 

se for o padrao timestamp tenta isso..

 

/* Função responsável em transformar o parâmetro com formato [dd/mm/yyyy hh:mm:ss] em timestamp*/

 

function timestamp($data){

$data = explode(" ", str_replace(array("/", ":"), " ", $data));

$data = @mktime($data[3],$data[4],$data[5],$data[1],$data[0],$data[2]);

return $data;

}

Nao kra, minha base possui o formato AAAA-MM-DD o padrao do mysql, eu preciso fazer com que o usuário digite uma data DD/MM/AAAA e, com alguma funcao que eu nao consegui desenvolver ele passe pro formato AAAA-MM-DD pra fazer o filtro na consulta...

 

 

hmmm...

 

seria assim entao?

 

$data = '17/11/2008';

 

function padraoMySql($data){

 

$str = explode('/',$data);

$nData = $str[2].'-'.$str[1].'-'.$str[0];

return $nData;

}

 

$teste = padraoMySql($data);

 

echo $teste;

//Gerará saida 2008-11-17

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom,

 

se for o padrao timestamp tenta isso..

 

/* Função responsável em transformar o parâmetro com formato [dd/mm/yyyy hh:mm:ss] em timestamp*/

 

function timestamp($data){

$data = explode(" ", str_replace(array("/", ":"), " ", $data));

$data = @mktime($data[3],$data[4],$data[5],$data[1],$data[0],$data[2]);

return $data;

}

Nao kra, minha base possui o formato AAAA-MM-DD o padrao do mysql, eu preciso fazer com que o usuário digite uma data DD/MM/AAAA e, com alguma funcao que eu nao consegui desenvolver ele passe pro formato AAAA-MM-DD pra fazer o filtro na consulta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data = '17/11/2008';

 

function padraoMySql($data){

 

$str = explode('/',$data);

$nData = $str[2].'-'.$str[1].'-'.$str[0];

return $nData;

}

 

$teste = padraoMySql($data);

 

echo $teste;

 

//Gerará saida 2008-11-17

 

:rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data = '17/11/2008';

 

function padraoMySql($data){

 

$str = explode('/',$data);

$nData = $str[2].'-'.$str[1].'-'.$str[0];

return $nData;

}

 

$teste = padraoMySql($data);

 

echo $teste;

 

//Gerará saida 2008-11-17

 

:rolleyes:

 

Valew kra... acho q o forum ta com problema de flood...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso aí..

 

Aí você usa um BETWEEN na query comparando data inicial e data final e já era!

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Galera!

Para converter data aa/mm/yyyy para inserir no MySQL assim: yyyy/mm/aa, segue o post.

 

$dataBR = "01/01/2011";

$dataEUA = substr($dataBR,6)."-".substr($dataBR,-7,-5)."-".substr($dataBR,0,2);

 

Simples assim... o $dataEUA será igual a "2011-01-01". Em duas linhas você resolve ;-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu uso uma mais simples e rapida

 


function toDate($data,$sep='-')
{
$dat = explode($sep,$data);
array_reverse($dat);
return implode($sep,$data);
}

echo toDate('2011-12-08');
echo toDate('2011/12/08','/');

 

da pra usar com datas com separadores diferentes como: aaaa-mm-dd, aaaa/mm/dd etc......bastando usar o segundo parametro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.