valtinho 0 Denunciar post Postado Março 15, 2006 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
Foxbh 0 Denunciar post Postado Março 15, 2006 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
Fabyo 66 Denunciar post Postado Março 15, 2006 se nao quiser usar minha função que ta no laboratorio, outro jeito simples de apenas 1 linha é usar o strtotime(data -7 days) e para exibir formate usando date() Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Zelenski 0 Denunciar post Postado Janeiro 26, 2009 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
OoDragooNoO 0 Denunciar post Postado Janeiro 27, 2009 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
Fabyo 66 Denunciar post Postado Janeiro 27, 2009 Mais simples que strtotime nao existe e pessoal fiquem atento para as datas do topico, esse no caso era de 2006. Compartilhar este post Link para o post Compartilhar em outros sites