Ir para conteúdo

POWERED BY:

Arquivado

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

Gleilson

[Resolvido] Comparar datas

Recommended Posts

Estou com problemas, quando comparo duas datas, esse codigo apenas compara o dia, e eu queria comparar o dia, mes e ano:

Ex:

$data_atual = date('Y-m-d');

 

if($data_atual<$sql['vencimento']){

echo "<td>Pendente</td>";}

elseif(date('Y-m-d')==$sql['vencimento']){

echo "<td>Dia do Pagamento</td>";}

else{

echo "<td>Ok</td>";}

 

Isso funciona qunado falamos apenas do mes corrente:

 

Supondo que $data_atual = 2010-04-09.

 

ex1: Supondo que $sql['vencimento'] = 2010-04-06 aí beleza a resposta é "OK".

 

Ex2: Supondo que $sql['vencimento'] = 2010-04-10 aí beleza a resposta é "Pendente",

 

Ex3: Mas quando a $sql['vencimento'] = 2010-05-01, Utrapassando o mes corrente aí também a resposta é "pendente".

 

 

Como eu faço para a resposta ser "Ok" em vez de Pendente, pois a cada mes começa um novo ciclo de vericação dos if;

Compartilhar este post


Link para o post
Compartilhar em outros sites

use  isso 

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
       -> 1
mysql> SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31');
       -> -30
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00', '2000:01:01 00:00:00.000001');
       -> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001','1997-12-30 01:01:01.000002');
       -> '46:58:57.999999'

:)

esse dados no vem do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, indo por partes:

 

Se hoje for menor do que vencimento então PENDENTE

Se hoje for igual ao vencimento então DIA DO PAGAMENTO

Se hoje for maior do que o vencimento então OK

 

hoje = 2010-04-09

vencimento = 2010-05-01

 

2010-04-09 é menor do que 2010-05-01

então é PENDENTE

 

Não tem nada de errado aí, porque o OK nesse caso só virá quando o dia do vencimento ainda não tiver chegado

Mas se o que você quis dizer foi que ao virar o mês deve aparecer Ok, então você eu bolei uma gambiarra aqui:

 

	list($dia, $mes, $ano) = explode("-",$data_atual);
	list($dia2, $mes2, $ano2) = explode("-",$sql['vencimento']);

	if($data_atual<$sql['vencimento'] && $mes == $mes2){
		echo "<td>Pendente</td>";}
	elseif(date('Y-m-d')==$sql['vencimento']){
		echo "<td>Dia do Pagamento</td>";}
	else{
		echo "<td>Ok</td>";
	}

Desse modo você verifica o mês. Se não estiver no mesmo mês atual e o mês do vencimento, então exibe OK

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.