Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PauloRJ

Somar dias em uma data definida

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.