PauloRJ 4 Denunciar post Postado Outubro 28, 2009 Nao estou conseguindo nem achando somar 10 dias em uma data: exemplo: $data = "2009-08-16"; + 10 dias = 2009-08-26 so achei somar data com date atual: echo date("d/m/Y", strtotime(" +2 days ")); por variável nao funfa. Deu branco! 1) Data registro somar + 10 dias 2) Data de Hoje subtrair data registro 3) Passados 3 dias / 6 dias / 10 dias e vou por cor por prazo chegando data final. é isso, mas o erro hj é somar que travei rs abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 28, 2009 Olha, primeiro resultado do Google por "função somar data PHP" function SomarData($data, $dias, $meses, $ano) { /*www.brunogross.com*/ //passe a data no formato dd/mm/yyyy $data = explode("/", $data); $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano) ); return $newData; } Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Outubro 28, 2009 Eu tenho a data: 2009-08-25 e quero saber qual data somando + 10 dias ou 40 dias ou seja o dia que for. Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Outubro 28, 2009 tente fazer assim $dataFinal = date($dataInicial,time()+3600*24*12) ; //12 é o numero de dias a ser somado espero ter ajudado Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Outubro 28, 2009 sem sucesso :unsure: Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Outubro 28, 2009 ACHEI: $dias = 5; $dia = 01; $mes = 05; $ano = 2009; $dataFinal = mktime(24*$dias, 0, 0, $mes, $dia, $ano); $dataFormatada = date('d/m/Y',$dataFinal); echo $dataFormatada; $dias é a quantidade de dias que desejamos somar, $dia, $mes e $ano é a data a qual será somado os dias (neste nosso exemplo 5 dias). Como nossa data base, vamos chamar assim, é 01/05/2009 e como iremos somar 5 dias o resultado será 06/05/2009. Façam seus testes. Usamos ainda uma segunda função, date, para formatar nossa data final, caso contrário teríamos como resultado o valor 1241578800. E se ao invés de 5 dias somássemos 31 dias à data 01/05/2009 qual seria o resultado? Neste caso seria 01/06/2009. Não há necessidade de criar variáveis para os parâmetros da função, usei apenas para demonstração. Você pode usar assim: $dataFinal = date('d/m/Y',mktime(24*5, 0, 0, 05, 01, 2009)); Esta função é bastante útil quando queremos descobrir a data de vencimento de boletos por exemplo. Boa sorte! fonte: http://www.comocriarsites.com.br/funcao-para-somar-dias-a-uma-data-em-php_b_9.html valeu abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 28, 2009 Olha a minha solução, no primeiro post... function SomarData($data, $dias, $meses, $ano) { /*www.brunogross.com*/ //passe a data no formato dd/mm/yyyy $data = explode("/", $data); $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano) ); return $newData; } Um exemplo em funcionamento... function SomarData($data, $dias, $meses, $ano) { /*www.brunogross.com*/ //passe a data no formato dd/mm/yyyy $data = explode("/", $data); $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano) ); return $newData; } $dataAntiga = '01/01/2009'; echo 'A data depois de somarmos 45 dias ficou '.SomarData($dataAntiga,45,0,0); Vai imprimir A data depois de somarmos 45 dias ficou 15/02/2009 Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Outubro 28, 2009 SHow! Vou usar sua função. Subtrair as datas que ta dando um erro: $dat1 = strtotime($dataIni); $dat2 = strtotime($dataFinal); $res = $dat1 - $dat2; $res = $res / 86400; echo 'Re final: '.$res; resultado: Data: 2009-09-11 Data: 2009-10-28 Re final: 46.958333333333 Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 28, 2009 Usa a mesma lógica da função para somar, mas modifique o sinal. function SubtrairData($data, $dias, $meses, $ano) { //passe a data no formato dd/mm/yyyy $data = explode("/", $data); $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] - $meses, $data[0] - $dias, $data[2] - $ano) ); return $newData; } Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
AyrtonMaia 0 Denunciar post Postado Outubro 29, 2009 Cara, dá para você fazer isso simplesmente usando a função explode() // Variavel $data recebendo uma data no padrão (dd/mm/aaaa) $data = '29/10/2009'; // Variavel aux2 fazendo o explode separando pelo caracter '/' $aux2 = explode('/',$data); // Exibe a data completa na tela sem cortes echo "Data completa: ".$data."\n"; // Exibe somente o dia da data echo "Dia da data: ".$aux2[0]."\n"; // Exibe somente o mês da data echo "Mês da data: ".$aux2[1]."\n"; // Exibe somente o ano da data echo "Ano da data: ".$aux2[2]."\n"; // Exibe a data no formato para inserir no MySQL (aaaa-mm-dd) echo "Data formatada: ".$aux2[2]."-".$aux2[1]."-".$aux2[0]; Ayrton Maia - MSN:tinho@habbofly.net | Email:ayrtonmaia@oi.com.br Retirado da Revista PHP Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Junho 11, 2010 Não não. Explode separa a data e o que eu queria era somar. Você somando separadas vai dar problema. []s Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 11, 2010 PHP 5.3.0+ $data1 = new DateTime( '2009-08-16' ); $data2 = new DateTime( '2009-08-16' ); echo $data1->add( DateInterval::createFromDateString( '+10 days' ) )->format( 'Y-m-d' ); // 2009-08-26 echo $data2->add( DateInterval::createFromDateString( '-10 days' ) )->format( 'Y-m-d' ); // 2009-08-06 Compartilhar este post Link para o post Compartilhar em outros sites