Ir para conteúdo

POWERED BY:

Arquivado

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

valtinho

Subtrair Data

Recommended Posts

Olá pessoal, Como posso subtrai 7 dias de uma data, pesquisei algumas coisas pelo google, mas nada.Alguém tem alguma dica?por exemplo:Data vinda do formulário -> $data;dessa data menos 7 dias.Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se essa ai te ajuda, e meio grandinha, mais e eficiente

 

 

<?phpfunction voltadata($dias,$datahoje){   if (ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $datahoje, $sep)) {   $dia = $sep[1];   $mes = $sep[2];   $ano = $sep[3];   } else { 	echo "<b>Formato Inválido de Data - $datahoje</b><br>";   }   if($mes == "01" || $mes == "02" || $mes == "04" || $mes == "06" || $mes == "08" || $mes == "09" || $mes == "11"){ 	for ($cont = $dias; $cont > 0; $cont--){ 	$dia--; 	  if($dia == 00){ // Volta o dia para dia 31 . 	  $dia = 31; 	  $mes = $mes -1; // Diminui um mês se o dia zerou . 		if($mes == 00){ 		$mes = 12; 		$ano = $ano - 1; // Se for Janeiro e subtrair 1 , vai para o ano anterior no mês de dezembro. 		} 	  } 	}   }   if($mes == "05" || $mes == "07" || $mes == "10" || $mes == "12" ){ 	for ($cont = $dias; $cont > 0; $cont--){ 	$dia--; 	  if($dia == 00){ // Volta o dia para dia 30 . 	  $dia = 30; 	  $mes = $mes -1; // Diminui um mês se o dia zerou . 	  } 	}   }   if($ano % 4 == 0 && $ano%100 != 0){ // se for bissexto 	if($mes == "03" ){ 	  for ($cont = $dias; $cont > 0; $cont--){ 	  $dia--; 		if($dia == 00){ // Volta o dia para dia 30 . 		$dia = 29; 		$mes = $mes -1; // Diminui um mês se o dia zerou . 		} 	  } 	}   }//fecha se bissexto...   else{ // se não for bissexto 	if($mes == "03" ){ 	  for ($cont = $dias; $cont > 0; $cont--){ 		$dia--; 		if($dia == 00){ // Volta o dia para dia 30 . 		  $dia = 28; 		  $mes = $mes -1; // Diminui um mês se o dia zerou . 		} 	  } 	}   }   if(strlen($dia) == 1){$dia = "0".$dia;}   if(strlen($mes) == 1){$mes = "0".$mes;}   $resultado = "$dia/$mes/$ano"; return $resultado; }$dias = 7;//numero de dias que ira voltar$datahoje = date("d/m/Y");echo voltadata($dias,$datahoje);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

 

Eu usei o função mktime pra subtração em datas...

 

$data = "26/01/2009";

 

// Dividi a data em dia, mes e ano.

 

$ano = substr($data,6,4);

$mes = substr($data,3,2);

$dia = substr($data,0,2);

 

$newData = date("d/m/Y", mktime(0, 0, 0, $mes, $dia - 7, $ano));

 

// Simples e pra mim funcionou, podemos rápidamente mudar para subtrair dia, mes, ano ou mesmo adicionar dia, mes e ano, só com poucas alterações no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

 

Eu usei o função mktime pra subtração em datas...

 

$data = "26/01/2009";

 

// Dividi a data em dia, mes e ano.

 

$ano = substr($data,6,4);

$mes = substr($data,3,2);

$dia = substr($data,0,2);

 

$newData = date("d/m/Y", mktime(0, 0, 0, $mes, $dia - 7, $ano));

 

// Simples e pra mim funcionou, podemos rápidamente mudar para subtrair dia, mes, ano ou mesmo adicionar dia, mes e ano, só com poucas alterações no código.

concordo ;)

eu sempre aconselho a armazenar datas utilizando a funçao "mktime()" e manipula-las utilizando a funçao "date()", fica bem mais facil e pratico de manipular elas (seja lah como for)

 

referencia das funçoes :

mktime : http://br.php.net/manual/pt_BR/function.mktime.php

date : http://br.php.net/manual/pt_BR/function.date.php

 

flw xD/

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.