2012-02-09 4 views
2

データベースからの各エントリのタイムスタンプを含む結果テーブルを作成しようとしています。しかし、"X秒/分/時間前"と表示する時間が必要です。MySQLのタイムスタンプから "Time Before"

私はjQuery timeago pluginを成功させずに試してみましたが、今度は各エントリに対してこれを行う方法が不思議です。

$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"; 

どのようにして結果ごとに「時間前」機能を作成できますか?

+0

時間を保存するためにどのようなタイプを使用しましたか? – Sampson

+0

これはYYYY-MM-DD HH:MM:SSとして保存されています – BurpmanJunior

+0

私は今、スタンプからdiff()関数を使用するようにクエリを修正し、それをページに表示するだけです。必要なクライアント側のものを取り込む必要はありません。 –

答えて

4
$time = strtotime($row['time']); 
$dbDate = new DateTime($time); 
$currDate = new DateTime(); 
$interval = $currDate->diff($dbDate); 
echo $interval->d." days ".$interval->h." hours"; 

$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 

あなたは、私はそれを自分でチェックしていませんが、上の差異を使用することができ、ここでの素敵な機能があります.....およびフィールド

-1

これはお役に立ちます。

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

PHPやMysqlのいずれかのサーバー側で時間変換を行う方が良いでしょう。 –

+0

私は、この回答は、サーバー側ではなくクライアント側で時間の操作を制御する機能を提供するので、最もよいと思います。サーバ側で実行されると、冗長な情報が得られます。このような情報はクライアント側で簡単に計算できます。また、サーバとクライアント間でDISPLAY情報を分離し、サーバ側。 –

関連する問題