_vina 0 Denunciar post Postado Fevereiro 15, 2007 Bom dia !!! estou com um problema em somar datas. tipo faço uma compra em 15/02/2007 ae escolho pagar em 3x ae as dastas tem q aparecer assim 15/02/2007 15/03/2007 15/04/2007 a data vem digitada assim mesmo 15/02/2007 ae coloquei em um for para fazer a soma for($i=0;$i<$parcelas;$i++){$vencimento = strtotime("$data+$i month");} ae a data aparece assim 31/07/2030 28/09/2030 28/09/2030 alguem pode me dar um HELP!? vlws http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 15, 2007 você precisa converter a data para o padrao aaaa-mm-dd Compartilhar este post Link para o post Compartilhar em outros sites
_vina 0 Denunciar post Postado Fevereiro 15, 2007 já fiz isso $data2 = explode("/",$_REQUEST['txtDataParcela']);$data = $data2[0]."-".$data2[1]."-".$data2[2]; na hora de mostrar <?=date("d/m/Y", $vencimento);?>e já tentei<?=date("Y-m-d", $vencimento);?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 15, 2007 mas a questao nao é "tentar" o strtotime só entende datas no padrao americano mesmo $data = "2007-02-15"; $parcelas = 3; for($i = 0; $i < $parcelas; $i++){ $vencimento = strtotime("$data+$i month"); echo date("d/m/Y", $vencimento)."<br />"; } resultado : 15/02/2007 15/03/2007 15/04/2007 viu nao tem erro obs: em relação as parcelas só por comentar mesmo, quando voce parcela alguma coisa a primeira parcela sempre será no proximo mês, se voce paga um valor no mesmo mês é "entrada" , dai o correto seria começar o loop com valor 1 para dar os meses certo de parcelas Compartilhar este post Link para o post Compartilhar em outros sites
Nelson Sousa 0 Denunciar post Postado Março 27, 2007 Olá,Acho que meu problema é o mesmo.Minhas datas são arquivadas no MYSQL com formato dd/mm/yyyy em campos VARCHAR.Como as converto para o formato YYYY-mm-dd?Só assim poderei fazer os cálculos das parcelas correto?Devo mudar a forma de arquivamento das datas?Qual seria a correta, ou a mais usada? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 27, 2007 a forma correta é usar campo DATE no banco e nao VARCHAR , VARCHAR é para texto, data usa DATE ou DATETIME cada campo tem suas funcionalidades Compartilhar este post Link para o post Compartilhar em outros sites
Nelson Sousa 0 Denunciar post Postado Março 27, 2007 Fabyo,Mas aí eu terei que converter a data que for informada pelo usuário para o formato aceito pelo MYSQL. Ou seja, de dd/mm/yyyy para yyyy-mm-dd.Como faço isso?Como vim do VB6, ainda tô meio crú no PHP. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 27, 2007 é isso mesmo voce precisa converter a data do usuario para o padrao Mysql use: implode("-", array_reverse(explode("/", "27/03/2007"))); e claro a data tem que estar no padrao dd/mm/yyyy para nao dar erro na função acima e para validar uma data voce pode usar http://php.net/checkdate Compartilhar este post Link para o post Compartilhar em outros sites
Nelson Sousa 0 Denunciar post Postado Março 27, 2007 Fabyo,A conversão da data digitada funcionou:$emissao = implode("-", array_reverse(explode("/", $_POST["txtEmissaoA"])));A soma das datas das parcelas ficou assim:$venc = strtotime("$emissao+$parc month");$vencimento = date("Y-n-d", $venc);É conversão que não acaba mais..rsrsrs...nisso o VB6 era menos burocrático.Valeu, Fabyo!!!! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 27, 2007 eu tbm trabalho com vb, mas no vb você usava o format(), basicamente se quiser você pode criar uma função estilo o format e usar mas o vb6 tem pouco recurso, tenta fazer no vb6 o que você ta fazendo em 1 linha usando o strtotime() = ) Compartilhar este post Link para o post Compartilhar em outros sites
Nelson Sousa 0 Denunciar post Postado Março 27, 2007 É, pode ser mesmo.Talvez seja somente falta de costume. No VB as rotinas simplesmente fluiam da mente.Mas confesso que tenho gostado muito do PHP. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 27, 2007 eu fiz ao contrario que voce eu tinha aprendido PHP, e fui obrigado aprender o VB6, hoje eu trabalho com vb6,3 dotnet e PHP, eu tenho a conciencia que dotnet é melhor, mas eu gosto muito do PHP Compartilhar este post Link para o post Compartilhar em outros sites