Muitas pessoas que têm ganância não compartilham o que sabem e por isso acham-se “poderosos” em termos de programação. Hoje estive queimando as pestanas para entender como que podemos fazer para que seja criado um ciclo de pagamento, aonde as pessoas podem criar um pagamento mensal ou trimestral, visando preservar o vencimento. Vou postar um exemplo claro:
Suponhamos que a data do vencimento veio através de uma query no banco de dados,
$data[‘Vencimento’] = ‘2008-04-07’; #imaginemos que a data é um valor de uma query, e não este Declarado, um valor parecido com este (uma data)
$tipopg = 6; #6 por que um semestre é contido por 6 meses, pode ser 1, 3, 12 e etc…
list($ano, $mes, $dia) = explode(‘-‘, $data[‘Vencimento’], ‘3’); # aqui está a jogada, usamos list pois list Cria variáveis como se fossem arrays e usamos explode para “partir” a variável $data[‘Vencimento’] em três partes, no caso, como vencimento é composto por Ano-Mês-Dia, nós jogamos o primeiro valor (ano) na variável $ano, mês na variável mês e dia em $dia. O 3 no Explode serviu para Delimitar que nós só queríamos 3 valores do resultado de explode.
Se quisermos echoar para entender como ficou o resultado, segue abaixo:
echo “o dia eh $dia, o mes eh $mes e o ano eh $ano”;
Abaixo, a data do vencimento recebe sua configuração:
$datav=mktime(0,0,0,$mes,$dia,$ano); #foi gerada uma data com os dados…
MKTIME é uma função que obtém um timestamp Unix para uma data.
echo ‘<br>’.$datav; #exibir a data do vencimento…
$proximovenc = mktime(0,0,0,$mes+$tipopg,$dia,$ano); #Aqui nós matamos 2 coelhos com uma cajadada só!
Observe, não precisamos nos preocupar com o dia do próximo vencimento pois, com a variável $tipopg que contém o tipo de ciclo de pagamento (mensal, trimestral e etc) perceba que mesmo se o dia for 07/11/2008, ao receber 6 meses como $proximovenc, o valor é contabilizado pelo mktime que recebe o timestamp, ou seja, isto resultará em -> 07/05/2009.
echo ‘data atual’.'<br>’.date(‘d/m/Y’,$datav).’ ,proximo vencimento ‘.date(‘d/m/Y’,$proximovenc);
Observe que utilizamos date seguido de variáveis (como argumentos) que contém o timestamp ajustado com o dia do vencimento atual e no segundo caso com o dia do vencimento ajustado para outros meses a frente.
Bem, é isso aí!