« Comparando Datas no fomato Americano
Tirando barras e menus do Excel »

Comparando datas no formato Brasileiro

A agencia Opositivo desenvolve sistemas web tais como Intranet, Extranet, site etc... 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. // esta function Pega a data "AAA/MM/DD" e transforma em "DD/MM/AAAA"
  2. function BrazilianDate($data)
  3.    {
  4.       // 1985-01-23 => 23/01/1985
  5.       $pecas = split('[-/]', $data);
  6.       if ($pecas[2]> 31)
  7.          return($pecas[0]."/".$pecas[1]."/".$pecas[2]);
  8.       return($pecas[2]."/".$pecas[1]."/".$pecas[0]);
  9.    }
  10.  
  11.    // date_explode ( $data )
  12.    // quebra os elementos de uma data no formato brasileiro
  13.    // basta passar o valor da data no formato Americano "AAA/MM/DD"
  14.    function brazilian_date_explode($data)
  15.    {
  16.       # 01/01/2002
  17.       $pecas = split('[-/]', brazilianDate($data));
  18.       $saida = array
  19.       (
  20.          'dia' => $pecas[0],
  21.          'mes' => $pecas[1],
  22.          'ano' => $pecas[2],
  23.       );
  24.       return($saida);
  25.    }
  26.  
  27.    
  28. // Compara duas datas no formato brasileiro
  29.    // Retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e
  30.    // 0 se a data2 for maior que a data1
  31.    function brazilian_date_compare($xdata1, $xdata2)
  32.    {
  33.       $data1 = brazilian_date_explode($xdata1);
  34.       $data2 = brazilian_date_explode($xdata2);
  35.       $timestamp1 = gmmktime(0,0,0,$data1['mes'],$data1['dia'],$data1['ano']);
  36.       $timestamp2 = gmmktime(0,0,0,$data2['mes'],$data2['dia'],$data2['ano']);
  37.       if ($timestamp1 == $timestamp2)
  38.          return(2);
  39.       $r = (($timestamp1> $timestamp2) ? 1 : 0);
  40.       return($r);
  41.    }
  42.    
  43.    $saida =brazilian_date_compare("12/05/2008", "12/05/2008");
  44. echo $saida; // retorna 2 pois as datas são iguais
  45.  
  46.    $saida =brazilian_date_compare("12/05/2008", "11/05/2008");
  47. echo $saida; // retorna 1 pois primeira data é menor que a segunda data
  48.  
  49.    $saida =brazilian_date_compare("11/05/2008", "12/05/2008");
  50. echo $saida; // retorna 0 pois primeira data é maior que a segunda data

Resumo
A primeira function chamada BrazilianDate tem o objetivo de pegar a Data no formato Americano e convertar para Formato Brasileiro

A segunda function chamada brazilian_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 brazilian_date_compare que o objetivo é comparar as datas que foram passadas

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');

Até mais

Ducca

Etiquetas: Comparando datas

Artigo de Quinta-feira, 5 de Junho, 2008 às 1:15, 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.