Ir para conteúdo

POWERED BY:

Arquivado

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

Andre Brunelli

[Resolvido] Somar dias a uma data PHP

Recommended Posts

Fala galera, beleza?

 

primeramente eu sei que existem n tópicos igual a esse, mas é pq estou com um problema, mas nenhum responde especificamente ao meu problema que tá até engraçado, olha só:

 

 

//pego uma determinada data que vem do banco, tudo bem, esta certinha a data do jeito que preciso
$dtdevolucao = $row['dtdevolucao'];

//preciso somar mais sete dias na minha data
$maissetedias = strtotime("+7 days");
$dtdevolucao = date("Y/m/d",$maissetedias);

não sei se é algum bug ou algo do tipo, mas no banco eu tenho uma data que está 2009-07-10

e quando ela passa pela funcao ai de somar 7 dias ela salva no banco 2009-07-13, agora o fato engraçado é que mesmo que eu set na mao a data para 2009-07-01 e dpois mande ele executar meu programa ele salva tb 2009-07-13 hehehhe ao inves de salvar 2009-07-08.....

 

o que pode ser de errado, sendo que eu ja tentei o mesmo com:

 

$dtdevolucao = date("Y/m/d", mktime (0,0,0,date("m"),date("d")+7,date("Y")));

 

vlw galera :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, é importante antes de criar um novo tópico fazer uma busca pelo fórum para ver se já não existe uma dúvida parecida com a sua ou ainda procurar a resposta no nosso amigo http://forum.imasters.com.br/public/style_emoticons/default/searchbeforeposting.gif .

 

No fórum usando as palavras que você colocou no seu título

http://forum.imasters.com.br/index.php...p;hl=somar+data

 

Primeira resposta do Google procurando por somar data PHP

 

http://codigofonte.uol.com.br/codigo/php/d...ara-somar-datas

 

Não vai fazer seu código funcionar, mas vai atingir seu objetivo que é somar dias a uma data.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu codigo esta somando 7 dias na data atual nao na data do banco, assim esta resultando no dia 13 (6+7=13)

é verdade rafael, ta somando no dia atual mesmo, mas realmente ja tentei n coisas aqui e nao estou conseguindo de jeito nenhum, se fosse pra somar na data atual tanto dia, mes e ano é muito facil, mas como eu to trazendo do banco, a maioria das coisas que eu tento me retorna um valo estranho como 192391424 sei la oq...

 

o problema persiste e nao estou conseguindo somar os 7 dias.

 

a data no banco esta no formato Y/m/d

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

a data no banco esta no formato Y/m/d

Seria assim? YYYY-MM-DD??

 

Se for, dá uma olhada nos links que eu postei.

 

Vou te mostrar um exemplo.

function SomarData($data, $dias, $meses = 0, $ano = 0)
{
   //passe a data no formato yyyy-mm-dd
   $data = explode("-", $data);
   $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[2] + $dias, $data[0] + $ano) );
   return $newData;
}
$data_inicial = '2009-01-01';
$nova_data = SomarData($data_inicial,7);
echo $nova_data;

Aí é só colocar a data que vem do banco no primeiro parâmetro. Os outros parâmetros (mês e ano) estão com valor padrão 0 para ficarem como parâmetros opcionais.

 

Carlos Eduardo

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

a data no banco esta no formato Y/m/d

Seria assim? YYYY-MM-DD??

 

Se for, dá uma olhada nos links que eu postei.

 

Vou te mostrar um exemplo.

function SomarData($data, $dias, $meses = 0, $ano = 0)
{
   //passe a data no formato yyyy-mm-dd
   $data = explode("-", $data);
   $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[2] + $dias, $data[0] + $ano) );
   return $newData;
}
$data_inicial = '2009-01-01';
$nova_data = SomarData($data_inicial,7);
echo $nova_data;

Aí é só colocar a data que vem do banco no primeiro parâmetro. Os outros parâmetros (mês e ano) estão com valor padrão 0 para ficarem como parâmetros opcionais.

 

Carlos Eduardo

 

Carlos Eduardo

 

Carlos! Brigadassso pela ajuda mermao... deu certinho, eu ja tinha usado a funcao mktime, mas devo ter passado algum valor errado (como eu tinha dito no primeiro post la em cima) que dava o mesmo problema.... mto obrigado pela ajuda ok??

 

té mais :)

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.