Php &引用;“很久以前”;从MySQL时间戳

Php &引用;“很久以前”;从MySQL时间戳,php,jquery,mysql,timeago,Php,Jquery,Mysql,Timeago,我试图创建一个结果表,包括数据库中每个条目的时间戳。但是,我需要将时间显示为“X秒/分钟/小时前” 我已经尝试了零成功,现在想知道如何为每个条目这样做 $result = mysql_query("SELECT * from realmfeed order by ID asc"); echo "<table class='display'>\n"; while($row = mysql_fetch_array($result)) { echo "<tr><

我试图创建一个结果表,包括数据库中每个条目的时间戳。但是,我需要将时间显示为“X秒/分钟/小时前”

我已经尝试了零成功,现在想知道如何为每个条目这样做

$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";
$result=mysql\u查询(“按ID asc从realmfeed订单中选择*);
回音“\n”;
while($row=mysql\u fetch\u数组($result))
{
回显“.$row['ID']”。\n;
回显“.$row['eventType']”。\n;
回显“.$row['server']”。\n;
回显“.$row['realm']”。\n;
回显“.$row['name']”。\n;
回显“.$row['time']”。\n\n\n;
}
回音“\n”;

如何为每个结果创建一个“time ago”函数?

我会从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
这里有一个很好的函数,你可以在上面使用差异,尽管我自己没有检查过

有关可用的函数和字段,请参阅。尝试此操作可能会有所帮助

<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>

jQuery(文档).ready(函数($){
$(“缩写为timeago”).timeago()
});

使用PHP进行时差计算的问题是,假设MySQL和PHP服务器位于同一时区。最好在选择中执行差异计算:

从realmfeed ORDER BY ID ASC中选择TIMEDIFF(NOW(),`time`),如前所述

这将返回格式化的时差

或者,如果您只喜欢秒数:


根据ID ASC从realmfeed ORDER中选择时间到秒(TIMEDIFF(NOW(),`TIME`)作为secondsAgo

您使用什么类型来存储时间?它存储为YYYY-MM-DD HH:MM:SSI将修改查询以使用diff()函数从戳记到现在,并将其显示在页面上。不需要涉及任何客户端内容。@Dagon我没有指定DATEDIFF()的原因是我相信它只会返回天。他可能需要创建一个UDF来实现它。转换为unix_时间戳或类似的东西。在上面快速搜索会得到这样的结果:在服务器端用PHP或Mysql进行时间转换可能更好。我认为这个答案是最好的,因为它提供了在客户端而不是服务器端控制时间操作的能力。当它在服务器端完成时,它提供了冗余信息,这样的信息可以在客户端轻松计算,加上在服务器和客户端之间提供了这样的显示信息的分离,使得维护更容易,而无需更改服务器端。
<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>