Ir para conteúdo

POWERED BY:

Arquivado

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

Apokalypse

Somando datas no PHP

Recommended Posts

E ai pessoal...td bem??

 

Meu problema: tenho um codigo que pega a data atual:

$dataAtual = date("Y-m-d"); // ex: 2005-08-08
Quero somar a esta data por exemplo 7 dias. Estou fazendo desta forma:

$dataAtual = $dataAtual+7
Em vez de ficar: 2005-08-15, ele ta ficando com o valor "2012"

 

Como faço para somar os dias, e nao os anos????

 

Valeu desde ja galera...boa noite a todos... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Apokalypse... funciona assim....se você quiser cotinuar, com a data no formato Ano-Mes_diatai o código<?// Formato: Anos-Mes-Dia$dataAtual = date("Y-m-d",strtotime("+ 7 days")); echo "$dataAtual<br><br>";?>Se quiser ela no formato, Dia-Mes-Anos, como nós usamos geralmente... ta ai<?$dataAtual = date("d-m-Y",strtotime("+ 7 days")); // ex: Dia-Mes-Anosecho "$dataAtual";?>lembrando deve-se aplicar na função e não na hora de impressão...Abraço, qualquer coisa é só gritar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer da seguinte forma tb....$ano = date("Y"); $mes = date("m"); $dia = date("d") + 7; $dataAtual = $ano."-".$mes."-".$dia;

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo soh aproveitando isso eu to postando aki tb um negocionho legal com data... tipo um comando que mostre a data da ontem...

 

Ele verifica se eh ano bisexto, se eh o primeiro dia do mes, ou o primeiro do ano tb... naum sei uma utilidade certa pra isso... mas vai ai :)

 

PHP

[*]<?php

[*]$dia = date('d')-1; 

[*]$mes = date('m')

[*]$ano = date('Y')

[*]

[*]if ($dia == '0') { 

[*] $mes = $mes - 1; 

[*] if ($mes == '0') { 

[*] $ano = $ano - 1; 

[*] $mes = 12; 

[*] } 

[*] if ($mes == '01') { $dia = 31; } 

[*] if ($mes == '02') {

[*] $bisexto = $ano/4; 

[*] if (strlen($bisexto) == 3) { 

[*] $dia = 29;

[*] } else { 

[*] $dia = 28; 

[*] } 

[*] } 

[*] if ($mes == '03') { $dia = 31; } 

[*] if ($mes == '04') { $dia = 30; } 

[*] if ($mes == '05') { $dia = 31; } 

[*] if ($mes == '06') { $dia = 30; } 

[*] if ($mes == '07') { $dia = 31; } 

[*] if ($mes == '08') { $dia = 31; } 

[*] if ($mes == '09') { $dia = 30; } 

[*] if ($mes == '10') { $dia = 31; } 

[*] if ($mes == '11') { $dia = 30; } 

[*] if ($mes == '12') { $dia = 31; } 

[*]} 

[*]

[*]if (strlen($mes) == 1) { $mes = "0".$mes; } // Verifica se o mes esta apenas com 1 digito ele coloca o 0 na frente 

[*]if (strlen($dia) == 1) { $dia = "0".$dia; } // Verifica se o dia esta apenas com 1 digito ele coloca o 0 na 

[*]$data = $ano."-".$mes."-".$dia; 

[*]

[*]$sql = "SELECT id, data FROM tabela WHERE data = '$data'"

[*]?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Soh uma informação... esse codigo soh vai dar erro na data quando for ano bisexto quando o ano for maior que 4000 mas acho que ateh lah PHP naum vai mais existir :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer da seguinte forma tb....

 

$ano = date("Y");

$mes = date("m");

$dia = date("d") + 7;

$dataAtual = $ano."-".$mes."-".$dia;

<{POST_SNAPBACK}>

Cara..desse jeito q você passou eh cagada fazer....

 

vou explicar porque: digamos que eu tenha a data: 2005-05-31 e eu somar +1 no dia, vai ficar: 2005-05-32 ..ai cagou tudo...

outra falha: se eu tenho a data: 2005-12-31 e somo +1 no dia...vai ficar: 2005-12-32...

isso eh um problema.... http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem esse é um metodo de subtrair datas...

 

PHP

[*]

[*]$datai = array(25,12,2005);

[*]$dataf = array(27,12,2005);

[*]$dti = mktime(0, 0, 0, $datai[1], $datai[0], $datai[2])//mktime(hora,minutos,segundos,mes,dia,ano)

[*]$dtf = mktime(0,0,0,$dataf[1],$dataf[0],$dataf[2]);

[*]$tempo = $dtf - $dti;

[*]$tempo = floor($tempo/(60));

[*]for($i=0; $i<=($tempo -1); $i++){ 

[*]$minutos++

[*]if($minutos > 59)

[*]$minutos = 0; 

[*]$horas += 1; 

[*]$h +=1; 

[*]}

[*]if($h > (23)){ 

[*]$h =0; 

[*]$dia += 1; 

[*]} 

[*]}

[*]echo $dia." Dias e ";

[*]echo $horas."h";

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal!Li os post só que no meu caso eu precisaria da diferença entre duas datas!Exemplo: 14/02/2006 e 13/06/2006Como faço para obter a diferença em dias entre essas duas datas ?Já tentei fazer de algumas formas, até mesmo pelos post que vcs deixaram, mas não consegui.Aguardo

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.