Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Subtrair datas

25-08-2010 12:24

Olá, boa tarde!

Estou há dias novamente tentando encontrar uma maneira de subtrair datas mas nada disso acontecer.

Eu tenho duas datas:

- Vencimento que é a data de vencimento que está no mySQL campo (date); e
- Data atual que é gerada pelo código:

$hoje = date('d/m/Y'); 

Segue abaixo o código:

$resultado = mysql_query($sql) or die ("N&atilde;o foi poss&iacute;vel realizar a consulta ao banco de dados");             while ($linha=mysql_fetch_array($resultado)) { $id = $linha['id']; $vencimento = $linha['vencimento']; $vencimento = date('d/m/Y', strtotime($vencimento)); $a = explode("/","$vencimento"); $b = explode("/","$hoje"); $antiga= mktime(0, 0, 0, $a[0], $a[1], $a[2]); $atual= mktime(0, 0, 0, $b[0], $b[1], $b[2]); $dif= $atual-$antiga; echo "Numero de Dias: ". floor($dif/ 84600); echo "<br>HOJE: ".$hoje; echo "<br>VENCIMENTO: ".$vencimento; echo "<br><hr>";             } 

RESULTADO:

Numero de Dias: 31 HOJE: 26/08/2010 VENCIMENTO: 25/08/2010   Numero de Dias: 744 HOJE: 26/08/2010 VENCIMENTO: 02/09/2010

Os números de dias estão errados... Já tentei de inúmeras maneiras sem sucesso. Aguardo a mega ajuda de vocês. Obrigado! ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Subtrair datas

25-08-2010 12:48

Tenta a data no formato americano: mm-dd-aaaa
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Subtrair datas

25-08-2010 13:02

Alterei o $hoje para:

$hoje = date('Y-m-d'); 

e o código:

$a = explode("-","$vencimento"); $b = explode("-","$hoje"); $antiga= mktime(0, 0, 0, $a[0], $a[1], $a[2]); $atual= mktime(0, 0, 0, $b[0], $b[1], $b[2]); $dif= $atual-$antiga; echo "Numero de Dias: ". floor($dif/ 84600); echo "<br>HOJE: ".$hoje; echo "<br>VENCIMENTO: ".$vencimento; echo "<br><hr>"; 

E o resultado foi:

Numero de Dias: 0 HOJE: 2010-08-26 VENCIMENTO: 2010-08-25   Numero de Dias: 0 HOJE: 2010-08-26 VENCIMENTO: 2010-09-02

0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 69

Subtrair datas

25-08-2010 14:55

RESOLVIDO:

Primeiro de tudo tem que ser em formato americano: yyyy-mm-dd

Depois, o mktime é na seguinte posição:

(hora, minuto, segundo, mes, ano, dia) - Era nesse trecho que eu estava errando...

Veja como ficou:

$a = explode("-","$vencimento"); $b = explode("-","$hoje"); $antiga= mktime(0, 0, 0, $b[1], $b[2], $b[0]); $atual= mktime(0, 0, 0, $a[1], $a[2], $a[0]); $dif= $atual-$antiga; echo "Numero de Dias: ". floor($dif/ 84600); 

Obrigado Kléber! ;)

Abraços e muito sucesso!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Subtrair datas

25-08-2010 17:11

Boa
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado