Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou criando um script para calcular a quanto tempo um post foi postado (por exemplo, 2 segundos atrás...), mas não estou conseguindo calcular corretamente...
Já tentei usar strtotime($dataatual)-strtotime($dataanterior), mas retornou um valor negativo (-1352194224), tentei usar só $dataatual-$dataanterior, mas também não deu certo, retornou o número 2.
O código que eu fiz está abaixo:
<?php
include("config.php");
$sql = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 5");
$dataatual = date('d/m/Y H:i:s');
$dataantiga = "12/03/2012 21:04:12";
while($row = mysql_fetch_array($sql)) {
$tempo = strtotime($datual)-strtotime($row['data']);
//Verifica o tempo restante em segundos e depois transforma em dias, meses, anos, etc...
if($tempo < 60) {
$tempo = $tempo . ".segundos";
} elseif($tempo > 59 && $tempo < 120) {
$tempo = $tempo/60 . ".minuto";
} elseif($tempo > 119 && $tempo < 3600) {
$tempo = $tempo/60 . ".minutos";
} elseif($tempo > 3599 && $tempo < 7200) {
$tempo = $tempo/60/60 . ".hora";
} elseif($tempo > 7199 && $tempo < 86400) {
$tempo = $tempo/60/60 . ".horas";
} elseif($tempo > 86399 && $tempo < 172800) {
$tempo = $tempo/60/60/24 . ".dia";
} elseif($tempo > 172799 && $tempo < 5184000) {
$tempo = $tempo/60/60/24 . ".dias";
} elseif($tempo > 5183999 && $tempo < 10368000) {
$tempo = $tempo/60/60/24/30 . ".mês";
} elseif($tempo > 10367999 && $tempo < 62208000) {
$tempo = $tempo/60/60/24/30/12 . ".meses";
} elseif($tempo > 62207999 && $tempo < 124416000) {
$tempo = $tempo/60/60/24/30/12/12 . ".ano";
} elseif($tempo > 124415999) {
$tempo = $tempo/60/60/24/30/12/12 . ".anos";
}
//Retira os "quebrados" da divisão
$tempo = explode('.', $tempo);
echo "há " . $tempo['0'] . " " . $tempo['2'] . " atrás \n";
}
?>
Como eu posso fazer?
Carregando comentários...