Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera alguém sabe me explicar como faço pra criar aquelas exibição de tempo da postagem, parecido com o do Facebook
Um exemplo:
Postado há 5 minutos;
Postado há ± 1 hora;
Postado há 1 dia atrás;
etc ...
Eu ate tentei, porém o sistema que eu fiz vai ate os 100 minutos =/
Onde o certo seria 60 e depois disso converter pra hora.
Alguém pode ajudar?
O código que eu fiz de teste:
<?php
$HoraAtual = date('H:i');
$HoraPostagem = '10:40';
$calcula = str_replace(':', '', $HoraAtual) - str_replace(':', '', $HoraPostagem);
if($calcula <= 0):
$tempo = 'há poucos segundos.';
elseif($calcula == 1):
$tempo = 'há '.$calcula.' minuto atrás.';
elseif($calcula > 1 && $calcula < 100):
$tempo = 'há '.$calcula.' minutos atrás.';
elseif($calcula >= 100 && $calcula < 200):
$tempo = 'há ± '.substr($calcula, 0, 1).' hora.';
elseif($calcula >= 200):
$tempo = 'há ± '.substr($calcula, 0, 1).' horas.';
endif;
echo 'Horário atual: <strong>'.$HoraAtual.'</strong><br />';
echo 'Horário da postagem: <strong>'.$HoraPostagem.'</strong><br /><br />';
echo 'Tempo: <strong>'.$calcula.'</strong><br />';
echo 'Postagem: <strong>'.$tempo.'</strong>';
?>>
acabei de responder um post semelhante a esse vai te ajudar
http://forum.imasters.com.br/topic/513780-quantidade-de-dados-armazenados-de-acordo-com-tempo/
Dei uma olhada no post mais não foi de grande ajuda.
Vou tentar ser um pouco mais claro:
Eu faço uma publicação no dia 20/12/2013 as 12:10:36 (Isso ficaria registrado no banco de dados).
Agora na hora de exibir a data dessa publicação, ao invés de exibir dessa maneira
"Publicado no dia 20/Dezembro às 12:12"
Eu queria que fosse exibido da seguinte maneira:
"Publicado há 20 minutos" - Isso se passado 20 minutos que foi publicado, seguindo esse mesmo raciocínio seria para as horas.
Se passado um dia apos a publicação ser feita seria exibido
"Publicado ontem"
E 2 dias ou mais seria exibido a data e hora normal
"Publicado 20/12/2013 as 12:12"
>
Dei uma olhada no post mais não foi de grande ajuda.
Vou tentar ser um pouco mais claro:
Eu faço uma publicação no dia 20/12/2013 as 12:10:36 (Isso ficaria registrado no banco de dados).
Agora na hora de exibir a data dessa publicação, ao invés de exibir dessa maneira
"Publicado no dia 20/Dezembro às 12:12"
Eu queria que fosse exibido da seguinte maneira:
"Publicado há 20 minutos" - Isso se passado 20 minutos que foi publicado, seguindo esse mesmo raciocínio seria para as horas.
Se passado um dia apos a publicação ser feita seria exibido
"Publicado ontem"
E 2 dias ou mais seria exibido a data e hora normal
"Publicado 20/12/2013 as 12:12"
terminei agora antes de almoçar :P
desse jeito ta bom para você?
select *,case
when (data_not between date_sub(now(),interval 20 minute) and now()) then '20 minutos'
when (data_not between date_sub(now(),interval 1 hour) and now()) then '1 hora'
when (date_format(data_not,'%Y-%m-%d') between date_sub(current_date,interval 1 day) and current_date) then 'hoje'
when (date_format(data_not,'%Y-%m-%d') between date_sub(current_date,interval 2 day) and current_date) then 'ontem'
else date_format(data_not,'%d/%m/%Y %H:%i')
end as data_postagem
from noticias
OBS:campo de data tem que ser datetime
se ajudou clica /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_images/imasters/rep_up.png&key=69f1cee84b0cec2770cf4978eb26283900cc6cd53272a52e2e7da158a809e582" alt="rep_up.png" /> marca como resolvido
não consegui editar o post, esse sql aqui esta correto
select *,case
when (data_not between date_sub(now(),interval 20 minute) and now()) then '20 minutos'
when (data_not between date_sub(now(),interval 1 hour) and now()) then '1 hora'
when (date_format(data_not,'%Y-%m-%d') = current_date) then 'hoje'
when (date_format(data_not,'%Y-%m-%d') = date_sub(current_date,interval 1 day)) then 'ontem'
else date_format(data_not,'%d/%m/%Y %H:%i')
end as data_postagem
from noticias
se ajudou clica /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_images/imasters/rep_up.png&key=69f1cee84b0cec2770cf4978eb26283900cc6cd53272a52e2e7da158a809e582" alt="rep_up.png" /> marca como resolvido
acabei de responder um post semelhante a esse vai te ajudar
http://forum.imasters.com.br/topic/513780-quantidade-de-dados-armazenados-de-acordo-com-tempo/