Ir para conteúdo

POWERED BY:

Arquivado

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

Juninho14

Como comparar datas?

Recommended Posts

Bom pessoal tenho uma grande dúvida, creio que seja simples de ser resolvida, so nao sei como ehhe.. Como tem mta gente cranio aki decidi pedir uma ajudinha..

 

tenho uma tabela assim:

 

nome / id / data_cadastro / suspenso / pago / data_pagamento

Junior 01 26/12/2007 nao nao null

 

É um sisteminha assim: o cara se registra e fica 15 dias de graça no site, tem ate 15 dias para pagar, senao ele é suspenso, se ele pagar tem um ano de cadastro.

 

Alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser qualquer tipo sim... qualquer padrão... mas eh pq eu quero mostrar tipo: faltam x dias para seu registro ser suspenso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estando no padrão YYYY-MM-DD, para bloquear o acesso você poderia fazer da seguinte maneira direto na consulta:

 

SELECT * FROM usuarios
WHERE id = xx
AND CURDATE() < DATE_ADD(data_cadastro, INTERVAL 15 DAY)

Se retornar os dados do usuário, ainda estará no tempo limite de 15 dias, caso contrário já ultrapassou o tempo.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eu quiser checar entao se passou um ano eu faço interval 365?

e se eu quiser fazer uma contagem regressiva? como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eu quiser checar entao se passou um ano eu faço interval 365?

"INTERVAL 1 YEAR" também.

 

e se eu quiser fazer uma contagem regressiva? como faço?

Para mostrar a quantidade de dias que o usuário ainda tem você tem que fazer o cálculo no PHP.

 

  • Recebe a data de cadastro;
  • Obtém a data de término;
  • Subtrai um pelo outro e obtém os dias.
Sugiro converter antes para o formato timestamp.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem querer pedir demais, pode me dar um exemplo de como fazer isso, por favor?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que no caso Beraldo, para fazer subtração de uma data com outra esta função não se aplicaria, ou não? :huh:

 

Bom, se tiver alguma idéia posta aqui, ai eu aprendo também. :D

 

Fazendo no código, com o seguinte exemplo:

 

CODE
<?php

 

$data_cadastro = date_parse("2008-01-04"); // PHP 5+

 

$data_expirar = mktime(date("H"), date("i"), date("s"), $data_cadastro['month'], $data_cadastro['day'] + 15, $data_cadastro['year']);

 

$data_atual = mktime();

 

$diff = $data_expirar - $data_atual;

 

echo $diff / 86400;

 

?>

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe mas se você não executar, ler e procurar entender o que cada linha do código faz vai ficar difícil.

 

O que eu fiz foi exatamente os três pontos que citei na mensagem anterior (#6).

 

Só usar um pouco a lógica de programação que você aprendeu antes de iniciar em alguma linguagem de programação, certo? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

De fato, Paulo, DATE_SUB() não adianta , nesse caso.

Mas há DATEDIFF().

http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediff

 

No link já há exemplos. É só executar com PHP normalmente, como qualquer outra consulta. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

não beleza, é q nao entendi a ultima linha, meu comentário foi meio vago ehauiehuia...

 

pq dividir por 86400?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É verdade Beraldo, neste caso é bem mais simples. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

@ Juninho

 

Use a sugestão do Beraldo que é mais rápido e eficaz.

 

BTW, eu dividi por 86400 porque como a diferença retornada é em segundos, eu dividi esta diferença pela quantidade de segundos que há em 24 horas (86400)

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

caraca , ai vcs são dez, mto obrigado pelas dicas! show de bola, vou começar a desenvolver essa parte aqui e qualquer dúvida eu volto aki neste tópico, e quando eu deixar 100% eu volto aki tb para mostrar o result.

 

[]s

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.