Ir para conteúdo

Arquivado

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

Cliver

Subtração / Adição | Datas

Recommended Posts

Olá, boa tarde.Trabalho com PHP / MySQLUso o padrão MySQL para o campo datas: date (Y-m-d) | (0000-00-00)Preciso saber como faço a seguinte operação:$data_hoje = date("Y-m-d");Digamos que $data_hoje é 2006-02-01Quero diminuir 7 dias desta data, e preciso chegar ao resultado: 2006-01-25Mas se eu usar: $subtracao = $data_hoje - '7';o resultado obtido não é o esperado.Alguém pode me ajudar com essa simples dúvida.Desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, e se ao invez de querer somar as datas, eu somar ou subtrair os dias da semana por exemplo ...Hj é quinta...-1 ficararia quarta.Da pra fazer nesse esquema ? Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

use strtotime que é mais facil de manipular a data e forma exata

 

exemplo:

 

$data = "2006-01-31";
setlocale(LC_TIME, "portuguese");
echo ucfirst(strftime("%A", strtotime("$data -6 days")));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá , eu utilizei o seguinte código<?$data = date("D");setlocale(LC_TIME, "portuguese");echo ucfirst(strftime("%A", strtotime("$data -8 days"))); ?>Porém ele exibe o dia de hj, ao invez dos dias anteriores, o que pode ser ?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo ....Apenas se eu deixar o -x days = 0 ...ele nao deixa o dia de hj , e sim o de amanhã...Nao teria como se -x days nao fosse setado, ele ficaria como o dia de hj ?Consegui ....Se alguem quiser fazer isso o código está ai <?$data = date("Y-m-d");setlocale(LC_TIME, "portuguese");if (!empty($varia)){echo ucfirst(strftime("%A", strtotime("$data $varia days"))); }else{echo ucfirst(strftime("%A", strtotime("$data -0 days"))); }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom,eis que surje outro problema ..Preciso que esse código$data = date("Y-m-d");setlocale(LC_TIME, "portuguese");if (!empty($varia)){echo ucfirst(strftime("%A", strtotime("$data $varia days"))); }else{echo ucfirst(strftime("%A", strtotime("$data -0 days"))); }$sql = "SELECT * FROM calendario WHERE ver='$data' ORDER BY id ";no lugar do $data do WHERE ver= , colo o resultado dos echos...Porém nao está dando certo , o que pode ser?

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.