Ir para conteúdo

POWERED BY:

Arquivado

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

AlessandrodeMatos

Data e vencimento

Recommended Posts

Pessoal , eu fui requisitado para fazer um plano de "vip" mensal e gostaria de que o php checasse isso, tipo a pessoa pego 30 dias de vip no dia 19/06/2012 as 00:24h como o php vai indicar que no dia 19/07/2012 as 00:25 acaba o vip dessa pessoa?

 

alguem poderia me dar uma luz nesse codigo? alguma orientação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo tenta mais ow menos assim

 

exibir

$select = "SELECT * FROM usuarios WHERE vip = 'A' AND vencimento >= DATE(NOW())";

 

 

tabelas

CREATE TABLE `usuarios` (

`id` int(254) NOT NULL auto_increment,

`validade` date NOT NULL,

`vencimento` date NOT NULL,

`tipo` enum('1','2') NOT NULL default '1',

`status` enum('A','I') NOT NULL default 'A',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

até ai tranquilo mais quando for adicionar o vip tipo eu colocaria vip 30 dias restantes ai todo dia rodaria uma query para diminuir 1 dia , amis pra isso ele teria que usar o exemplo la de cima

 

19/06/2012 as 00:24h como o php vai indicar que no dia 19/07/2012 as 00:25 acaba o vip dessa pessoa? 

 

tipo hj é dia 19 ai ele ainda tem 30 dias , amanha é dia 20 ai ele tem 29 dias , mias como o php vai falar a data que acaba ? como ele vai mostrar a data , tipo uma mensagem no site : Seu vip expira dia : 19/07/2012 às 00:24

 

como ele vai fazer essa "soma" de dias

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai tu vai etr que fazer a soma tipo o inicio que vai ser a validade - o vencimento ai soma quanto tempo falta exemplo..

 

 

 

<?php

 

$dia_hora_atual = strtotime(date("Y-m-d H:i:s")); //aqui o dia atual

$dia_hora_evento = strtotime(date("2012-05-24 08:00:00")); // aqui o dia que o vip vai acaba

 

#Achamos a diferença entre as datas...

$diferenca = $dia_hora_evento - $dia_hora_atual;

 

#Fazemos a contagem...

$dias = intval($diferenca / 86400);

$marcador = $diferenca % 86400;

$hora = intval($marcador / 3600);

$marcador = $marcador % 3600;

$minuto = intval($marcador / 60);

$segundos = $marcador % 60;

 

#Exibimos o resultado

echo "$dias dia(s) $hora hora(s) $minuto minuto(s) "; aqui o resultando que dia que vai acaba

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai como eu faria pra que ele procurasse cada pessoa? tipo tem 100 contas no game , ele verificaria as 100 sem a pessoa precisar logar tipo de hora em hora ou minuto em minuto tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alessandro,

 

eu uso um sistema aqui que faz a checagem se o exame medico dos funcionarios estão vencidos; acredito que a forma utilizada atenda o seu proposito.

 

No meu caso, quando eu cadastro ou edito um funcionario, eu informo a data de vencimento do exame medico do mesmo. Ai toda vez que esse funcionario se loga no site, o sistema informa para ele se o exame esta vencido desde de uma determinada data, ou se o exame irá vencer em uma determinada data. Faço isso utilizando um processo simples de comparação da data atual com a data informada para vencimento do exame no BD.

No seu caso a data de vencimento do exame, seria substituida pela data de vencimento do VIP.

 

select no BD:

$usuario = $_SESSION['MM_Username']; // Parametro passado pelo sistema de login!

$boas_vindas = mysql_query("SELECT id, usuario, exame FROM usuarios WHERE usuario = '$usuario'")

or die(mysql_error());

if(@mysql_num_rows($boas_vindas) <= '0')

echo "Erro ao selecionar o usuário";

else{

while($res_boas_vindas=mysql_fetch_array($boas_vindas)){

$usuario = $res_boas_vindas[1];

$exame = $res_boas_vindas[2];

 

 

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

$I= strtotime($dataI);

$dataII= $exame;

$II= strtotime($dataII);

 

if ($I >= $II){

echo '<strong><font style="color:red">Seu exame medico venceu em: ' . date('d/m/Y', strtotime($exame)) . '</font></strong>';

}else{

echo '<font style="color:green">Seu exame médico vencerá em: ' . date('d/m/Y', strtotime($exame)) . '</font>';

}

}

}

 

Alem de dar a informação ao usuario, ao meu ver você também pode inserir o que será acessado pelo usuario (se vip ou não) dentro do if e do else.

 

Espero ter ajudado.

 

Abraços,

 

FLAMAURY

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alessandro,

 

eu uso um sistema aqui que faz a checagem se o exame medico dos funcionarios estão vencidos; acredito que a forma utilizada atenda o seu proposito.

 

No meu caso, quando eu cadastro ou edito um funcionario, eu informo a data de vencimento do exame medico do mesmo. Ai toda vez que esse funcionario se loga no site, o sistema informa para ele se o exame esta vencido desde de uma determinada data, ou se o exame irá vencer em uma determinada data. Faço isso utilizando um processo simples de comparação da data atual com a data informada para vencimento do exame no BD.

No seu caso a data de vencimento do exame, seria substituida pela data de vencimento do VIP.

 

select no BD:

 

 

Alem de dar a informação ao usuario, ao meu ver você também pode inserir o que será acessado pelo usuario (se vip ou não) dentro do if e do else.

 

Espero ter ajudado.

 

Abraços,

 

FLAMAURY

 

sim sim, mais como tem como o php checar automaticamente sem o usuario logar na conta no site?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim e o select que postei vai fazer exatamente isso.

Dentro do if e do else, após a checagem do vencimento do vip, você vai poder inserir as ações que poderão ou não ser executadas pelo usuario, alem de que poderá tambem retornar para o usuario a mensagem sobre o acesso VIP estar vencido ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim e o select que postei vai fazer exatamente isso.

Dentro do if e do else, após a checagem do vencimento do vip, você vai poder inserir as ações que poderão ou não ser executadas pelo usuario, alem de que poderá tambem retornar para o usuario a mensagem sobre o acesso VIP estar vencido ou não.

 

o select que você passou vai consultar só o usuario que for logar neh? eu gostaria que um select fizesse nome por nome sem eu interferir em nada e sem precisar digitar nada seria só ativar o codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui há algo semelhante e resolvido. Dê uma olhada.

http://forum.imasters.com.br/topic/464950-desativar-cliente-depois-de-1-mes/

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que exatamente você não entendeu?

Ambos os problemas são parecidos (o seu e o dele), talvez com uma ou pequenas alterações, você pode bem utilizá-la.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que exatamente você não entendeu?

Ambos os problemas são parecidos (o seu e o dele), talvez com uma ou pequenas alterações, você pode bem utilizá-la.

 

sim sim , mais eu gostaria que rodasse um script php pra verificar quem acabou o tempo sem precisar a pessoa acessa a pagina , tipo , um automatico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer informar para o usuário que o seu tempo acabou? Isso?

 

Sugiro um cron diário, e não minuto a minuto.

 

Você pode fazer o seguinte, roda um cron todas as manhas e informar quem, no dia seguinte, acabará o tempo de uso.

 

Por exemplo, hoje (2012-06-21) as 7 horas da manhã. Rodou um script que avisou todos os usuários que o tempo acabará amanhã (2012-06-22), indiferente a hora.

 

Eu, como usuário, gostaria de ser avisado com antecedência quando o tempo irá acabar, e não somente após o término. Isso tudo com um baixo custo de processamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer informar para o usuário que o seu tempo acabou? Isso?

 

Sugiro um cron diário, e não minuto a minuto.

 

Você pode fazer o seguinte, roda um cron todas as manhas e informar quem, no dia seguinte, acabará o tempo de uso.

 

Por exemplo, hoje (2012-06-21) as 7 horas da manhã. Rodou um script que avisou todos os usuários que o tempo acabará amanhã (2012-06-22), indiferente a hora.

 

Eu, como usuário, gostaria de ser avisado com antecedência quando o tempo irá acabar, e não somente após o término. Isso tudo com um baixo custo de processamento.

 

sim seria otimo você pode me ajudar com esse cron nunca estudei isso :/

 

eu to pensando em um codigo sql para "banir" as pessoas porque vai ser um jogo pago mensamente tipo wow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode colocar 5 dias antes do vencimento para enviar a notificação e depois de 5 dias do vencimento se não pagou desativar de 1 para 0, assim não terá acesso.

Lembrando que você tem que fazer um link temporário de ativação do cadastro que expira em alguns dias, pois se não o usuário vai no link e ativa novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites


select campo_data ,(campo_data + INTERVAL 30 day) as vencimento from tabela

 

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.