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.
-
function americanDate($data)// pega a data no formato Brasileiro e transforma em formato Americano
-
{
-
// 23/01/1985 => 1985-01-23
-
if ($pecas[0]> 31) // verifica se a data está no formato Brasileiro
-
return($data);
-
return($pecas[2]."-".$pecas[1]."-".$pecas[0]);
-
}
-
-
// date_explode ( $data )
-
// quebra os elementos de uma data no formato americano
-
function date_explode($data)
-
{
-
# 2002-02-02
-
$saida = array
-
(
-
'dia' => $pecas[2],
-
'mes' => $pecas[1],
-
'ano' => $pecas[0],
-
);
-
return($saida);
-
}
-
-
// Compara duas datas no formato americano
-
// 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
-
function date_compare($xdata1, $xdata2)
-
{
-
// echo "data1=($xdata1), data2=($xdata2)
-
";
-
$data1 = date_explode($xdata1);
-
$data2 = date_explode($xdata2);
-
$timestamp1 = gmmktime(0,0,0,$data1['mes'],$data1['dia'],$data1['ano']);
-
$timestamp2 = gmmktime(0,0,0,$data2['mes'],$data2['dia'],$data2['ano']);
-
if ($timestamp1 == $timestamp2)
-
return(2);
-
$r = (($timestamp1> $timestamp2) ? 1 : 0);
-
return($r);
-
}
-
$saida =date_compare("2008/05/12", "2008/05/12");
-
echo $saida; // retorna 2 pois as datas são iguais
-
$saida =date_compare("2008/05/12", "2008/05/11");
-
echo $saida; // retorna 1 pois primeira data for maior que a segunda data
-
$saida =date_compare("2008/05/11", "2008/05/12");
-
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.
-
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