Ir para conteúdo

POWERED BY:

Arquivado

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

Alex_DTP

[Resolvido] data elseif - O que está errado?

Recommended Posts

Pessoal,

 

Tô com uma duvidazinha aqui.

 

Se a data for hoje, imprime hoje - ok

Se a data for ontem, imprime ontem - ok

Se a data for nos últimos 6 dias, imprime o dia da semana - ok

Mas se a data for mais de 6 dias deveria imprimir "Em", mas está imprimindo o dia da semana.

 

Algém pode me dar uma luz?

 

<?php 
$rs_da_data = $row_rsUltimaNoticia['strNotDateCad'];
if (date('d/m/Y') == date( 'd/m/Y', strtotime($rs_da_data))) {  
echo "Hoje, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));  
}
elseif (date('d/m/Y')-1 == date( 'd/m/Y', strtotime($rs_da_data))) {  
echo "Ontem, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));  
}
elseif (date('d/m/Y')-6 <= date( 'd/m/Y', strtotime($rs_da_data))) {   
echo ucfirst( strftime( '%A, %#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data)));   
}
else {  
echo "Em, ". strftime( '%#d/%m/%Y', strtotime($rs_da_data));   
}
?>

Valeu,

Alex

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso imprime exatamente o que?

 

echo "Hoje, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));

e isso

 

echo "Em, ". strftime( '%#d/%m/%Y', strtotime($rs_da_data));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso imprime exatamente o que?

 

echo "Hoje, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));

e isso

 

echo "Em, ". strftime( '%#d/%m/%Y', strtotime($rs_da_data));
Se a data do banco for igual a data de hoje, imprime:

Hoje, 4/11/2008, às 22h30

 

Se for igual a um dia atrás, imprime:

Ontem, 3/11/2008, às 22h30

 

Se for nos últimos 6 dias, imprime:

Domingo, 2/11/2008, às 17h30 ou

Sábado, 1/11/2008, às 17h30 e assim por diante

 

Se for há mais de seis dias deveria imprimir:

Em, 28/10/2008

 

Mas está imprimindo:

Terça-feira, 28/10/2008, às 13h40

 

Deve ser um erro no else, talvez

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi.

 

O código ficou meia boca, mas deu certo.

 

Se alguém quiser dar uma melhorada, tá valendo.

<?php 
$rs_da_data = "11/5/2008";
if (date('d/m/Y') == date( 'd/m/Y', strtotime($rs_da_data))) {  
echo "Hoje, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));  
}
elseif (date('d/m/Y', strtotime("-1 day")) == date( 'd/m/Y', strtotime($rs_da_data))) {  
echo "Ontem, ".strftime( '%#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data));  
}
elseif ((date('d/m/Y', strtotime("-2 day")) == date( 'd/m/Y', strtotime($rs_da_data))) or
		(date('d/m/Y', strtotime("-3 day")) == date( 'd/m/Y', strtotime($rs_da_data))) or
		(date('d/m/Y', strtotime("-4 day")) == date( 'd/m/Y', strtotime($rs_da_data))) or
		(date('d/m/Y', strtotime("-5 day")) == date( 'd/m/Y', strtotime($rs_da_data))) or
		(date('d/m/Y', strtotime("-6 day")) == date( 'd/m/Y', strtotime($rs_da_data)))) {   
echo ucfirst( strftime( '%A, %#d/%m/%Y, às %#Hh%M', strtotime($rs_da_data)));   
}
else {  
echo "Em, ".ucfirst( strftime( '%#d/%m/%Y', strtotime($rs_da_data)));   
}
?>

Alex

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.