Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou com a seguinte situação:Tenho um data cadastrada no servidor, do tipo DATE, ou seja, me retorna por exemplo : 2005-02-10.No registro onde tenho essa data, tem uma coluna com um nr. de dias, por exemplo 7. Esses dias é o nr. de dias que o registro deve ficar ativo, ou seja, supondo a data acima 10/02 + 7 dias = 17/02, hj ela estaria inativa, pois é menor que 25/02. Ao contrário se fosse 21 dias: 10/02 + 21 dias = 03/03, onde é maior que 25/02, ativa.Como fazer isso no PHP ?????Alguem me ajuda ??
Como ficaria a sintaxe via SQL ???Pois via PHP, já conseguir fazer......Já a opção de 7 dias, tem tb 15 dias e 30 dias.
Pela mor de Deus..... ninguem manja disso ???Ninguem nunca mexeu com soma, diferença de data ???Preciso do seguinte, tenha uma data no banco, somo 7, 15 ou 30 dias e tenho assim uma nova data.Ai pego essa nova data menos a data atual, tenho quantos dias falta.Ou seja:data banco: 01-03-2005prazo: 7 diasdata atual: 03-03-200501-03-2005 + 7 dias = 08-03-2005--> 08-03-2005 - 03-03-2005 = 5 diasAlguem ajudaaaaaaaaaaaaaaaaaaaaaaa !!!!
calma nao é toda hora que tem alguem disponivel no forum mas vamos la
você pode usar strtotime que converte qualquer data pra segundos e fazer isso:
[tr]
**PHP** [/tr][tr]$data_banco = strtotime("2005-03-01");
$data_atual = strtotime(date("Y-m-d"));
$data_pra_vencer = $data_banco + 604800;// 7 dias em segundos
$faltam = $data_pra_vencer - $data_atual ;
echo"faltam ".date("d",$faltam). " dias";
[/tr]
ve se você entendeu com isso da pra você fazer o que você quer
ate no proprio select do sql tbm da
qualquer duvida posta ia
Opa !! Fala ai =]Antes deu postar aqui a resposta pra você ... me diga se a versão do MySQL do seu Host é 4.1.1 ou superior !Por que o modo mais simples q eu conheço utilizando comandos diretos no MySQL só são executados apartir dessa versão !Abraços ! :lol:
>
calma nao é toda hora que tem alguem disponivel no forum mas vamos la
você pode usar strtotime que converte qualquer data pra segundos e fazer isso:
**PHP** [/tr][tr]$data_banco = strtotime("2005-03-01");
$data_atual = strtotime(date("Y-m-d"));
$data_pra_vencer = $data_banco + 604800;// 7 dias em segundos
$faltam = $data_pra_vencer - $data_atual ;
echo"faltam ".date("d",$faltam). " dias";
[/tr]
ve se você entendeu com isso da pra você fazer o que você quer
ate no proprio select do sql tbm da
qualquer duvida posta ia
E verdade ! você pode usar esses comandos PHP, mas para grandes base de dados a resposta do servidor será muito mais rapida utilizando comandos diretos no MySQL sacou ?
e também eu particulamente não acho muito facil você ter q ficar pondo os segundos.. ou convertendo... utilizando os comandos via Mysql você pode por a quantidade de dias.. meses .. minutos .. anos ... segundos.. o que você preferir !
bom, estou aguardando pra saber a versão do seu mysql !
Vamos ver se eu entendi... você tem dois campos... o Data e o prazo... você quer saber qts dias falta da data atual ate o vencimento do prazo?
Bom... depois de muito precisar disso ja posso dizer q eh moleza! (Metido não? ) :lol:
Algo como isso?
PHP [/tr][tr]"select TO_DAYS(DATE_ADD(data,interval prazo day) - TO_DAYS(now()) as dias from tabela "[/tr]
se retornar negativo... eh pq ja passou do prazo, se retornar Zero eh pq eh o mesmo dia, (o final e o de hoje), se retornar positivo eh o numero de dias q ainda faltam
>
Vamos ver se eu entendi... você tem dois campos... o Data e o prazo... você quer saber qts dias falta da data atual ate o vencimento do prazo?
Bom... depois de muito precisar disso ja posso dizer q eh moleza! (Metido não? ) :lol:
Algo como isso?
PHP [/tr][tr]"select TO_DAYS(DATE_ADD(data,interval prazo day) - TO_DAYS(now()) as dias from tabela "[/tr]
se retornar negativo... eh pq ja passou do prazo, se retornar Zero eh pq eh o mesmo dia, (o final e o de hoje), se retornar positivo eh o numero de dias q ainda faltam
Essa é uma boa saida nirsu !! mas se sua versão for = ou superior a 4.1.1 tenho outra solução pra você ! vlw !!!
Poxa galera, valeu mesmo !!!!
Tive a ajuda do nosso amigo prescot-san pois estava precisando com uma certa urgencia (deu para perceber né o desespero)
A solução está próximo a que nosso amigo Flybybetto passou.
Vai ai outra maneira de resolver isso......
SELECT FROM_DAYS(TO_DAYS('2005-03-01')+7) as dia, TO_DAYS(FROM_DAYS(TO_DAYS('2005-03-01')+7))-TO_DAYS(NOW()) as dia2
Mais uma vez tive minha dúvida resolvida no Forum.... só fera !!
E pode ter certeza que ainda vou encher muito o saco....eheheheh.
Valeu quem ajudou.
Abraços http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
você quer que ele exiba so´ as datas gravadas ate 7 dias atraz?
da pra montar isso na propria sintaxe sql