«Время назад» из метки времени MySQL - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь составить таблицу результатов, включая временную метку для каждой записи из базы данных.Однако мне нужно, чтобы время отображалось как "X секунд / минут / часов назад" .

Я пробовал плагин jQuery timeago с нулевым успехом итеперь мне интересно, как это сделать для каждой записи.

$result = mysql_query("SELECT * from realmfeed order by ID asc");

echo "<table class='display'>\n";

while($row = mysql_fetch_array($result))
{
    echo "<tr><td><b>".$row['ID']."</b></td>\n";
    echo "<td>".$row['eventType']."</td>\n";
    echo "<td>".$row['server']."</td>\n";
    echo "<td>".$row['realm']."</td>\n";
    echo "<td>".$row['name']."</td>\n";
    echo "<td>".$row['time']."</td>\n</tr>\n\n";
}


echo "</table>\n";

Как можно создать функцию «время назад» для каждого результата?

Ответы [ 3 ]

4 голосов
/ 10 февраля 2012
$time = strtotime($row['time']);
$dbDate = new DateTime($time);
$currDate = new DateTime();
$interval = $currDate->diff($dbDate);
echo $interval->d." days ".$interval->h." hours";

см. DateInterval для доступных функций и полей

1 голос
/ 10 февраля 2012

Я бы получал метку времени из MYSQL, затем выполнял бы вычисления в php, например.

$result = mysql_query("SELECT ..., UNIX_TIMESTAMP(time) as time FROM realfeed ORDER BY ID ASC");


$row = mysql_fetch_array($result);
$then = $row['time'];
$now = time();

$diff = $now - $then; //Now you have the difference in seconds

Здесь есть хорошая функция, на которой можно использовать разницу, хотя я сам ее не проверял .....

http://itwigle.com/twig/PHP_Time_Ago_Function

0 голосов
/ 19 марта 2013

попробуйте это может помочь

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="jquery.timeago.js"></script>
</head>

<body>
<?php 
$result = mysql_query("SELECT * from realmfeed order by ID asc");

echo "<table class='display'>\n";

while($row = mysql_fetch_array($result))
{
    echo "<tr><td><b>".$row['ID']."</b></td>\n";
    echo "<td>".$row['eventType']."</td>\n";
    echo "<td>".$row['server']."</td>\n";
    echo "<td>".$row['realm']."</td>\n";
    echo "<td>".$row['name']."</td>\n";
    echo "<td><abbr class=\"timeago\" title=\"".date("j F Y h:i:s A",$row['time'])."\"></abbr></td>\n</tr>\n\n";
}


echo "</table>\n";
?>

    <script>
    jQuery(document).ready(function($){
     $("abbr.timeago").timeago()

    });
    </script>

</body>
</html>
...