Ir para conteúdo

POWERED BY:

Arquivado

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

visitante_xp

[Resolvido] Datas

Recommended Posts

Iae galera...

 

Seguinte, eu quero fazer um sistema que me mostre determinados dados mediante a modificação de um periodo.

Ex.:

 

O dia atual... date("Y-m-d") + 1 = O dia de amanhã. (bom pelo menos na teoria)

 

Ai é que ta o problema, o sistema só me retorna o valor da soma do ano = 1 e não o dia (reparei que ele soma o dado que vier na frente, logo se date começa com "Y"-ano ele somará o ano e assim sucessivamente).

 

Tentei então fazer de outra forma:

 

$data[]=date("Y");

$data[]=date("m");

$data[]=date("d");

 

$dia="$data[0]-$data[1]-$data[2]";

 

Essa forma tambem me retorna o dia atual, só que com os valores separados. Mas pelo fato de eles estarem separados quando eu somo o dia, eu queria que o mes tmb se auterasse quando o dia referente aquele mes chegasse ai limite.

 

Ex.:

 

echo $dia="$data[0]-$data[1]-$data[2]+1"; (Me retorna o dia de amanhã.

 

echo $dia="$data[0]-$data[1]-$data[2]=14"; Me retornaria um dia do mes que vem, porem ao inves de ele para ou no 31 ou no 30 ele continua contando independente do numero que eu somar.

 

Quero que quando chegue no fim do mes (dependendo do mes, claro) ele voute para o dia 1 e troque o mes.

 

Estou tentando fazer meu script usando algumas condições, porem decidi abrir este tópico para que vocês me dessem alguma sugestão.

 

Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe uma função 'mais certa' para isso:

http://br.php.net/mktime

 

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um exemplo do que o Willian falou.

 

function SomarData($data, $dias, $meses, $ano)
{
   /*www.brunogross.com*/
   //passe a data no formato dd/mm/yyyy 
   $data = explode("/", $data);
   $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano) );
   return $newData;
}

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, probema resolvido...

 

o Código ficou assim:

        $data[]=date("d");
	$data[]=date("m");
	$data[]=date("Y");

	$hoje=$data[2]."-".$data[1]."-".$data[0];

	$data=explode("-", $hoje);
	$dia=date("m-d-Y", mktime(0, 0, 0, $data[1], $data[2], $data[0]));

	$day=explode("-", $dia);
	$date="$day[2]-$day[0]-$day[1]";
Ai da pra fazer uma alterações, por exemplo, ser quiser fazer uma condição na qual sua pesquisa retorne resulados com datas da hoje até os proximos 7 dias pode ficar assim:

if($_GET['periodo']==1)
{
	$data[]=date("d")+7;
	$data[]=date("m");
	$data[]=date("Y");

	$hoje=$data[2]."-".$data[1]."-".$data[0];

	$data=explode("-", $hoje);
	$dia=date("m-d-Y", mktime(0, 0, 0, $data[1], $data[2], $data[0]));

	$day=explode("-", $dia);
	$date="$day[2]-$day[0]-$day[1]";
}

Só é preciso acrecer os dias que quiser, mas se for o caso de alterar o mês é só acrecer 1,2,3 e assim sucessivamente.

 

E o melhor é que se nos proximos 7 dias houver mudança de mês, o código altera o mês automaticmente.

 

A principio uso o código par exibição mas é totalmente plausivel sua utilização para incerções...

 

Vlw pela ajuda povo...^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apesar de estar resolvido, vou sugerir uma leitura... Para pesquisar no banco de dados, você pode usar as funções de date do próprio Mysql, assumindo que seu BD é Mysql.

 

http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

POR QUE TU NUM ME MOSTRO ISSO ANTESS?????...^^...vlw...

 

Bem simpes que o código que eu fiz, mas agora ja foi...Pelo menos qd precisar fazer de novo,vou repensar a ideia...

 

Abraço!!!

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.