« Meta tags para o Google
Comparando datas no formato Brasileiro »

Comparando Datas no fomato Americano

A agencia Opositivo desenvolve sistemas web tais como Intranet, Extranet, saiba mais visitando o site www.opositivo.com

Para quem tem dúvidas na hora de comparar datas, querendo saber qual das duas datas é maior etc.. Estou publicando uma function que te retorna se a data é igual maior ou menor.

PLAIN TEXT
PHP:
  1. function americanDate($data)// pega a data no formato Brasileiro e transforma em formato Americano
  2. {
  3. // 23/01/1985 => 1985-01-23
  4. $pecas = split('[-/]', $data);
  5. if ($pecas[0]> 31) // verifica se a data está no formato Brasileiro
  6. return($data);
  7. return($pecas[2]."-".$pecas[1]."-".$pecas[0]);
  8. }
  9.  
  10. // date_explode ( $data )
  11. // quebra os elementos de uma data no formato americano
  12. function date_explode($data)
  13. {
  14. # 2002-02-02
  15. $pecas = split('[-/]', americanDate($data));
  16. $saida = array
  17. (
  18. 'dia' => $pecas[2],
  19. 'mes' => $pecas[1],
  20. 'ano' => $pecas[0],
  21. );
  22. return($saida);
  23. }
  24.  
  25. // Compara duas datas no formato americano
  26. // Retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e
  27. // 0 se a data2 for maior que a data1
  28. function date_compare($xdata1, $xdata2)
  29. {
  30. //      echo "data1=($xdata1), data2=($xdata2)
  31. ";
  32. $data1 = date_explode($xdata1);
  33. $data2 = date_explode($xdata2);
  34. $timestamp1 = gmmktime(0,0,0,$data1['mes'],$data1['dia'],$data1['ano']);
  35. $timestamp2 = gmmktime(0,0,0,$data2['mes'],$data2['dia'],$data2['ano']);
  36. if ($timestamp1 == $timestamp2)
  37. return(2);
  38. $r = (($timestamp1> $timestamp2) ? 1 : 0);
  39. return($r);
  40. }
  41. $saida =date_compare("2008/05/12", "2008/05/12");
  42. echo $saida; // retorna 2 pois as datas são iguais
  43. $saida =date_compare("2008/05/12", "2008/05/11");
  44. echo $saida; // retorna 1 pois primeira data for maior que a segunda data
  45. $saida =date_compare("2008/05/11", "2008/05/12");
  46. echo $saida; // retorna 0 pois primeira data é menor que a segunda data

Resumo
A primeira function chamada americanDate tem o objetivo de pegar a Data no formato Brazileiro ou Americano e convertar para o formato Americano. O legal desta função é que você pode jogar um dos dois formatos de data (Brasileiro ou Americando) que ela te retorna o formato Americano.

A segunda function chamada date_explode recebe a data no formato Americando ou Brasileiro e quebra em array separado por Dia, Mês e Ano

A terceira function chama date_compare que o objetivo é comparar as datas que foram passadas no formato Americano e retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e 0 se a data2 for maior que a data1

Organização
Eu recomendo que crie uma pagina chamada "strings.php" e jogue todas as funções criadas, assim na hora de programar é so incluir esta página no topo do arquivo.

PLAIN TEXT
PHP:
  1. require_once('strings.php');

espero ter ajudado a galera que tem dúvidas com data.

No próximo post vou escrever sobre o mesmo tópico mas para as datas no formato Brasileiro.

Até mais

Ducca

Etiquetas: Comparando datas

Artigo de Quinta-feira, 5 de Junho, 2008 às 0:48, arquivado em PHP. Pode seguir os comentários a esta entrada através do feed RSS 2.0. Pode comentar ou criar um Trackback para aqui, no seu site.

Comentar

  • Categorias

    • C# (1)
    • CAPA (13)
    • Design (2)
    • Fotografia (3)
    • HTML (2)
    • Links positivos (9)
    • PHP (6)
    • Sem categoria (2)
    • Sharepoint (3)
    • SQL (1)
    • VBA (1)
    • Visual basic (1)
  • Posts Recentes

    • Tabela Tipográfica
    • Design de logos 2009
    • Função para Paginação PHP
    • Color Blender
    • Pulseira USB
  • Páginas

    • Acerca

O + criado com WordPress
RSS Artigos e RSS Comentários.