Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida sobre a função mktime, (somar dias).


Paulo Campos 01

Pergunta

Olá, pessoal,

tenho um script com uma função especifica para parcelas.

Ao lançar uma data "$newData" ele salva no DB parcelas com o mesmo

dia de vencimento a contar do primeiro dia da data informada de acordo com o número de parcelas.

EX:

Se eu lanço no dia 20/09/2012

ele vai gerar as parcelas com as datas

20/10/2012

20/11/2012

20/12/2012

Com seus valores descontando as taxas e dividindo pelo nº de parcelas informado.

Mas isso não vem ao caso.

O que eu precisava é que ele somasse dias e não meses.

Somasse de 30 em 30 dias de acordo com o nº de parcelas...

Ele está somando 30 dias a partir do primeiro dia, pois coloquei "$qtde_dias" para somar na função "mktime",

mas a partir dai ele torna esse dia de vencimento fixo.

o que eu preciso é que some de 30 em 30 dias a partir do próximo dia decorrente.

EX:

Se eu lanço no dia 20/09/2012

ele gere as parcelas nos dias

20/10/2012

19/11/2012

19/12/2012

Ajuda ai pessoal

Segue abaixo o script.

$newData('20/09/2012');

if($newData != null){
          $newData = explode( "/",$newData);
       $dia = $newData[0];
          $mes = $newData[1];
       $ano = $newData[2];
       $qtde_dias = '30';

          } else {
        $dia = date("d");
        $mes = date("m");
        $ano = date("Y");
          }

          for($x = 0; $x < $nParcelas; $x++){
        
        $parcela = date("Y-m-d",strtotime("+".$x."month",mktime(0, 0, 0,$mes,$dia+$qtde_dias,$ano)));

if(mysql_query("INSERT INTO cad_parcelas(data_vencimento_parcelas)VALUES('".$parcela."')"))
           {   
             
         echo "Parcela ".$x.": ".$parcela."<br/>";

} else {
          die("Erro ao inserir a parcela ".$x.": ".mysql_error());
       }
    }//for

Editado por Paulo Campos 01
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tenta este

<?php
//===================================================
//Cria a função
    function SomarData($data, $dias, $meses, $ano)
    {
        $data = explode("/", $data);
        $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses,
        $data[0] + $dias, $data[2] + $ano) );
       return $newData;
    }
//===================================================
//Define os parametros para chamar a função
    $data = date("d/m/Y"); //passe a data no formato dd/mm/yyyy 
    $meses = "0";
    $ano = "0";
    $intervalo_dias = 30;
    $dias = $intervalo_dias;
//===================================================
//Quantidade de parcelas
    $qt_parcelas = 4;
//===================================================
//Determina os vencimentos.
    for ($parcela = 1; $parcela <= $qt_parcelas; $parcela++)
    {        
        $vencimento = SomarData($data, $dias, $meses, $ano); //Chama a função
        echo "<br>Parcela ".$parcela." ".$dias." dias. Vencimento ".$vencimento;
        $dias = $dias + $intervalo_dias;
    }
?>

Não esqueça de retornar.

At.

Everaldo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...