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


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17563
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Script para gerar datas das parcelas em tantos meses PHP

01-02-2015 18:07

Esse script em PHP faz um loop nas datas para gerar os meses que cada parcela irá vencer.

Esse script também faz o cálculo para que quando o vencimento da parcela for dia 31 por exemplo, e o determinado mês não tiver 31 dias, o script pega o último dia do mês e usa o mesmo como data final.

Nesse script são 12 parcelas, e a primeira parcela vence dia 31-03-2015

O resultado é

2015-03-31 2015-04-30 2015-05-31 2015-06-30 2015-07-31 2015-08-31 2015-09-30 2015-10-31 2015-11-30 2015-12-31 2016-01-31 2016-02-29

Como mostrado no script, os meses que não tem 31 dias, o script ajusta a data colocando o último dia do mês do laço.

<?php // DATA PARA A PRIMEIRA PARCELA A PAGAR /////////// ANO, MÊS, DIA $DP = Array(2015, 03, 31); // QUANTIDADE DE PARCELAS $parcelas = 12; // ARRAY PARA AS DATAS $data_array = Array($DP[0], $DP[1], $DP[2]); $data_array2 = Array($DP[0], $DP[1], $DP[2]); // ARMAZENANDO MÊS DA DATA MENOS 1 $n = $data_array[1]-1; $v_i = $n; // FOR PRINCIPAL for($i = 0; $i < $parcelas; $i++) { $v_i++; // BASE PARA SOMAR OS MESES $v = strtotime ( '+'.$i.' month' , strtotime(implode("-", $data_array))) ; $v2 = strtotime ( '+'.$i.' month' , strtotime(implode("-", $data_array2))) ; $nd = date ( 'Y-m-d' , $v ); $nd2 = date ( 'Y-m-d' , $v2 ); // PEDAÇOS DA DATA DO LAÇO $p = explode("-", $nd); // ATÉ 12 MÊSES if($v_i <= 12) { // BASE DO MÊS ATUAL $base_mes = date("Y-m-t", strtotime($nd)); // PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO $forma_data = $p[0].'-'.$v_i.'-01'; $ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data)); $b1 = explode("-", $base_mes); // EXPLODE DO BASE MES $b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS if($b1[2]!=$b2[2]) { echo "{$b2[0]}-{$b2[1]}-{$b2[2]}<br>"; } else { echo "{$b1[0]}-{$b1[1]}-{$data_array[2]}<br>"; } } // ATÉ 12 MÊSES // DE 12 À 24 MESES elseif($v_i > 12 && $v_i <= 24) { // BASE DO MÊS ATUAL $base_mes = date("Y-m-t", strtotime($nd)); // PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO $forma_data = $p[0].'-'.($v_i-12).'-01'; $ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data)); $b1 = explode("-", $base_mes); // EXPLODE DO BASE MES $b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS if($b1[2]!=$b2[2]) { echo "{$b2[0]}-{$b2[1]}-{$b2[2]}<br>"; } else { echo "{$b1[0]}-{$b1[1]}-{$data_array[2]}<br>"; } } // DE 12 À 24 MESES // DE 24 À 36 MESES elseif($v_i > 24 && $v_i <= 36){ // BASE DO MÊS ATUAL $base_mes = date("Y-m-t", strtotime($nd)); // PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO $forma_data = $p[0].'-'.($v_i-24).'-01'; $ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data)); $b1 = explode("-", $base_mes); // EXPLODE DO BASE MES $b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS if($b1[2]!=$b2[2]) { echo "{$b2[0]}-{$b2[1]}-{$b2[2]}<br>"; } else { echo "{$b1[0]}-{$b1[1]}-{$data_array[2]}<br>"; } } // DE 24 À 36 MESES // DE 36 À 48 MESES elseif($v_i > 36 && $v_i <= 48){ // BASE DO MÊS ATUAL $base_mes = date("Y-m-t", strtotime($nd)); // PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO $forma_data = $p[0].'-'.($v_i-36).'-01'; $ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data)); $b1 = explode("-", $base_mes); // EXPLODE DO BASE MES $b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS if($b1[2]!=$b2[2]) { echo "{$b2[0]}-{$b2[1]}-{$b2[2]}<br>"; } else { echo "{$b1[0]}-{$b1[1]}-{$data_array[2]}<br>"; } } // DE 36 À 48 MESES // DE 48 À 60 MESES elseif($v_i > 48 && $v_i <= 60){ // BASE DO MÊS ATUAL $base_mes = date("Y-m-t", strtotime($nd)); // PEGANDO O ÚLTIMO DIA DO MÊS DO LAÇO $forma_data = $p[0].'-'.($v_i-48).'-01'; $ultimo_dia_do_mes = date("Y-m-t", strtotime($forma_data)); $b1 = explode("-", $base_mes); // EXPLODE DO BASE MES $b2 = explode("-", $ultimo_dia_do_mes); // EXPLODE DO ULTIMO DIA DO MÊS if($b1[2]!=$b2[2]) { echo "{$b2[0]}-{$b2[1]}-{$b2[2]}<br>"; } else { echo "{$b1[0]}-{$b1[1]}-{$data_array[2]}<br>"; } } // DE 48 À 60 MESES else { } // FIM DO ELSEIF } // FIM DO FOR PRINCIPAL ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

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