Ir para conteúdo

Arquivado

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

douglaspaiani

Comparar 2 datas PHP

Recommended Posts

Olá pessoal, estou precisando de uma ajuda ae.

 

Tenho uma tabela no banco de dados chamada "vencimento", com datas em formato VARCHAR (29/04/2016).

 

O bagulho é o seguinte, tenho uma página de faturas, onde só será exibido as faturas para vencer, com 5 dias de antecedência.

 

Usei o seguinte código e não funcionou:


<?php
$limite = date("d/m/Y", strtotime("-5 Days"));

$sql_rev = mysql_query("SELECT * FROM revendas WHERE cliente = '$id_cliente'");
while($rev = mysql_fetch_array($sql_rev)){
$vencimento_rev = $rev['vencimento'];
if(strtotime($vencimento_rev) >= $limite){

?>
<tr>
<td><a href="" title=""><?php echo $rev['revenda'] ?></a></td>
<td class="hidden-xs"><?php echo $rev['ciclo'] ?></td>
<td><?php echo $rev['vencimento']; ?></td>
<td class="hidden-xs"><?php echo $rev['status'] ?></td>
</tr>
<?php } } ?>

Está retornando vazio :(

 

O que posso fazer?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, primeiro recomendo mudar data de varchar para date no bd, senão você vai ficar precisando de gambiarras no código.


<?php
//data limite
$limite = "20/05/2016";
//Data do banco
$dataBD = "2016-05-20";
$limiteData = date(implode("-", array_reverse(explode("/", $dataBD))));
$limiteData = strtotime($limiteData);
$limiteNum = 5;
$limiteData = mktime(0, 0, 0, date('m', $limiteData) , date('d', $limiteData) - $limiteNum, date('Y', $limiteData));
$dataBD = date("d/m/Y",$limiteData);

if ($dataBD > $limite) {
    echo $dataBD.' - Data maior';
} elseif($dataBD == $limite){
    echo $dataBD." -Data igual";
} else{
    echo $dataBD." - data menor";
}

?>

A mesmo esquema da outra, mas aqui você substitui o valor da $dataBD pelo valor vencimento retornado na consulta

 

Valeo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo, o formatado da data está totalmente errado, mas não é necessária essa volta toda para resolver isto, pois strtotime suporta dd-mm-yyyy, então...

 

 

$limite = strtotime("-5 Days");

$sql_rev = mysql_query("SELECT * FROM revendas WHERE cliente = '$id_cliente'");
while($rev = mysql_fetch_array($sql_rev)){
  $vencimento_rev = strtotime(str_replace('/','-',$rev['vencimento']));

 
  if($vencimento_rev >= $limite){

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.