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

Datas


SirSmart

Pergunta

Galera a cada registro de eu incluo no meu banco de dados eu preciso verificar a quantidade de parcelas e incluir as datas referente a essas parcelas, por exemplo.

Se o cara vai pagar em 12 vezes eu queria jogar as 12 datas no meu banco, pois assim eu poderia dar baixa mês a mês se o cara pagou ou não....

O problema é o seguinte: Estou fazendo um for pra inserir as datas no banco, só que quando chega no mes 200512 ele vai automaticamente para 200513, 200514, etc... Tem alguma maneira de eu fazer isso para que quando chegue em 200512 ela pule para 200601???

Obrigado

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

É bem provável que o php ou o mysql tenha alguma função que ajude facilmente a fazer isso. Mas como eu não sei, posso te passar a logica para isso.

Pegue o mês e divida por 12. O valor inteiro do resto será somado ao ano, e a diferença do mês e 12 será o mes referente.

Ex: 200513

13/12 = 1,08333333333333

Valor inteiro: 1

13-12=1

Então: 200601

Outro ex: 200526

26/12 = 2,16666666

Valor inteiro: 2

26-12=14 - 12=2 (pode-se usar recursividade)

Então: 200702

biggrin.gif Viajei legal nesse code quando vi a pergunta. Mas estou disposto a aprender novas função, que até simplifique isso. Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Ve se te ajuda::::

<?php

$dia_da_compra = date('d');

$mes_da_compra = date('m');

$ano_da_compra = date('Y');

$hora = date('G');

$min = date('i');

$seg = date('s');

$parcela = 30; // primeira parcela daqui a 30 dias

$numero_meses = 40;

for ($cont = 1 ; $cont <= $numero_meses; $cont++)

{

$ts = mktime($hora,$min,$seg,$mes_da_compra,$dia_da_compra + $parcela,$ano);

echo "$cont ° parcela : ".date('d-m-y',$ts)."<br>";

$parcela = $parcela + 30;

}

?>

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Como eu faço formatação de datas dentro do echo??

Tipo:

echo "date('d/m/Y',$retorno[2]) - date('d/m/Y',$retorno[3])";

Acho q dessa maneira não funciona não é???

Eu tentei usar uma variável!!

$data = date("d/m/Y",$retorno[2]);

Mas ela retorna "31/12/1969"

Link para o comentário
Compartilhar em outros sites

  • 0

dá uma olhada aqui, vê se te ajuda

<?php
$mes = date("n");
$ano = date("Y");
$nroParcelas = 12;
for($i=0;$i<$nroParcelas;$i++){
  if($mes>12){
    $mes = 1;
    $ano++;
  }
  if($mes<10)
    $mes = '0' . $mes;
  echo $ano . $mes . '<br>';
  $mes++;
}
?>

falows!.. qualquer coisa posta ae...

Link para o comentário
Compartilhar em outros sites

  • 0

lembrei de uma coisa agora...

no sitema de datas de registro deste forum (invision), c vocês olharem no banco de dados na tabela members , na coluna joined.... tem uma combinação de numeros la!!

Eses numeros saum os dados de registro do usuário Dia e hora!!

Ate hoje num sei como o php le akilo!!

alguém sabe me explicar a logica dakilo?? o.o

Link para o comentário
Compartilhar em outros sites

  • 0

não eu to fazendo aparentemente certo ó!!

while ($retorno = mysql_fetch_array($query)) {
  $data = date('d/m/Y',$retorno[1]);
  echo "<tr><td>$retorno[0] - $data</td></tr>";
}

Mas a $data não vem formatada em dia/mes/ano (15/06/2005).

Com hora funciona (eu acho) num lembro c deu certo mas a data vem do banco formatada como Y-m-d (2005-06-15).

Andei olhando os posts acima e todos formatam uma parte da data por vez!!!

$dia = date('d');

$mes = date('m');

$ano = date('Y');

Num posso fazer uma variavel so receber a data formatada?

Link para o comentário
Compartilhar em outros sites

  • 0

Veja se pode lhe ajudar

<?
     function calcula_fluxo($abertura, $frequencia){
          list($ano, $mes, $dia) = explode("-", $abertura);
          $f = $frequencia;
          echo "Abertura: {$dia}/{$mes}/{$ano} <br><br>\n";
          for($i =1; $i <= 12; $i++){
               $data = date("d/m/Y", mktime(0, 0, 0, $mes, ($dia + $f), $ano));
               echo $data." - ".$f." dia(s) da data de Abertura<br>\n";
               $f = $f + $frequencia;
          }          
     }
     calcula_fluxo("2005-02-01", 30);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Veja se pode lhe ajudar

<?
     function calcula_fluxo($abertura, $frequencia){
          list($ano, $mes, $dia) = explode("-", $abertura);
          $f = $frequencia;
          echo "Abertura: {$dia}/{$mes}/{$ano} <br><br>\n";
          for($i =1; $i <= 12; $i++){
               $data = date("d/m/Y", mktime(0, 0, 0, $mes, ($dia + $f), $ano));
               echo $data." - ".$f." dia(s) da data de Abertura<br>\n";
               $f = $f + $frequencia;
          }          
     }
     calcula_fluxo("2005-02-01", 30);
?>

Talvez, eu só não entendi pra q ela serve!

Calcula a data 30 dias a frente?

Na verdade eu só queria saber porque o date("d/m/Y",$retorno[1]); não funciona com o banco de dados!! sad.gif

Já que o banco vem 2005-07-06 e eu só quero fazer virar 06/07/2005 sem precisar fazer 3 variáveis receberem $dia,$mes,$ano e contatenar $dia+'/'+$mes+'/'+$ano!! sad.gif

Se fosse pra fazer assim eu já tinha feito!! Me perdoem pela insistência mas não dá, tem que ser de uma vez só "date("d/m/Y",$retorno[1]);"!! sad.gif

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...