Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Comparando datas no formato 00/00/0000


Guest Julio Santos

Pergunta

Guest Julio Santos

Olá a todos.

Estou precisando fazer comparação de datas armazenadas no banco de dados.

O Formato da data é 00/00/0000.

Nos campos DataInicio e DataFim eu pego o registro...mas não sei como fazer o script saber se a DataInicio é maior que a DataFim.

Agradeço a todos a atenção.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá a todos.

Estou precisando fazer comparação de datas armazenadas no banco de dados.

O Formato da data é 00/00/0000.

Nos campos DataInicio e DataFim eu pego o registro...mas não sei como fazer o script saber se a DataInicio é maior que a DataFim.

Agradeço a todos a atenção.

JULIO... é uma coisa relativamente fácil... existem algumas formas... por exemplo, cada data destas tem uma DATA UNIX.. que é um numero único que conta o tempo desde a ativação do UNIX... você converte para ela, compara e desconverte... outra idéia... você pode tratar a data como string, desmonta-la em partes e fazer uma cadeia de IFs comparando dia, mes e ano, alias é esta forma que seu cerebro processa a informação de data, e não é dificil de fazer... atençao que a forma 00/00/0000 tem seus detalhes dúbios... melhor se você escevesse DD/MM/AAAA ... em MYSQL, campos DATE guardam a informação no formato AAAA-MM-DD... portanto precisa ser desmontado e comparado levando isto em conta...

o código você escreve, consultando o PHP.NET no manual de referencia... e manda para a gente dar pitaco!... alias, lá você encontra alguns exemplos, quem sabe até do jeito que você quer...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Julio Santos

Segue o que eu fiz...

<?
$data1='03/02/2008';
$data2='02/02/2008';
$datainicio=ereg_replace('/','',$data1);
$datafinal=ereg_replace('/','',$data2);
if($datainicio<$datafinal){
echo"<br>$datainicio é menor que $datafinal";

}else{
echo"<br>$datainicio é maior que $datafinal";

}

?>

Essas datas eu pego de um banco Microsoft SQL Server...elas ficam armazenadas nesse formato mesmo.

Dá pra melhorar isso?

Link para o comentário
Compartilhar em outros sites

  • 0

A sua comparação está equivocada... experimente trocar 03/02/2008 por 03/01/2008, você vai ver que ele vai dizer que 03/01 é maior que 02/02... o motivo é simples, ele não está comparando datas, e sim os números, para você fazer uma comparação real entre datas ou você transforma tudo em timestamp unix (como foi dito acima), ou você deixa no formato aaaammdd, ou seja 03/02/2008 passaria para 20080203, ai sim a comparação vai dar certo, para fazer essa mudança use algum dos exemplos daqui.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...