Ir para conteúdo

POWERED BY:

Arquivado

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

Roberto_S_Luz

[Resolvido] Comparando datas

Recommended Posts

E aí moçada, oia eu aki dinovo (espero que não enjoem da minha cara por aki...rsss).

 

Bom...a duvida do momento é:

 

Verificar qual data é a maior, porém...quero verificar somente o mes e o ano.

Exemplo:

data 1 = '10/2009';

data 2 = '11/2009';

 

Existe algum metodo para realizar essa operação?

Pois já testei o strtotime(),mktime(),date(,mktime()), enfim...todos são válidos apenas para datas completas, ou seja, com dia/mes/ano ou mes/dia/ano, enfim...já sacaram a ideia né.

 

A parada é a seguinte:

Tenho um controle de venda de passagens onde que...só é permitido a venda de passagens para o mes atual e para o proximo mes.

Então...eu verifico o mês seguinte:

echo "<br>Mes seguinte = ".$mes_seguinte = date('n/Y',mktime(0,0,0,date('n') + 1,date('d'),date('Y')));
Pego o mês fornecido pelo usario e...bom...aí é que tá...e agora...como calcular qual das duas datas é a maior?

 

Eu tambem já fiz um explode("/",$data_tal);

Onde eu inverto o ano e o mes, porem quando chega no ultimo mes para o primeiro do proximo ano, dá errado, o motivo é que:

Por exemplo:

 

data normal 1 = 12/2009

invertida é: 200912

 

data normal 2 = 1/2010

invertida é: 20101 -> Observe que, mesmo sendo maior (20101), tem menos caracteres do que o outro(200912).

Se eu colocar 01 em vez de 1 passa, porém a data é pra vir 1 pois tenho outros calculos que 01 é menor que 1, então tem de ser 1 mesmo.

 

Bom...alguem tem alguma ideia ou já viu algo do tipo em algum canto?

 

Desde já...grato pela antenção!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pegar o mês, use date('m'), que vai retornar o mes com 0 na frente.

 

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

Caso seja digitado e o usuário digite sem o zero, use sprintf para completar. Assim...

 

$x = 8;

$y = sprintf("%02s",$x);
echo $y; // deve imprimir 08

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande matias_rezende !!!

Bom...o meu problema não era em pegar o mês, rsss.

Para pegar o mês, use date('m'), que vai retornar o mes com 0 na frente.

 

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

Bom...o meu problema tava é aqui

Caso seja digitado e o usuário digite sem o zero, use sprintf para completar. Assim...

 

$x = 8;

 

$y = sprintf("%02s",$x);

echo $y; // deve imprimir 08

 

E graças à sua dica aí...resolvi o meu problema.

 

Então a solução ficou assim:

 

Onde desejo realizar a comparação das datas coloquei isso

if($this->inverter_datas($mes_ano_venda) > $this->inverter_datas($this->pas_data)){

E o metodo responsavel pela inversão ficou assim

public function inverter_datas($data){
			
			$data_base = explode("/",$data);
			$data_dia  = $data_base[0];
			$data_mes  = $data_base[1];
			$data_ano  = $data_base[2]; 
			
			$data_mes  = sprintf("%02s",$data_mes);
			
			return $mes_ano = $data_ano.$data_mes;
		}

matias_rezende , obrigado por sua ajuda.

 

Abraços meu amigo http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu até imaginei que fosse usar a segunda dica, mas resolvi dar as duas pra garantir.

Que bom que resolveu. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Carlos Eduardo

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.