0

配列内の各投稿データにタイムアゴを入れようとしています。投稿データはmysqlテーブルからのものです。次のようなコード:

  $sql = "SELECT * FROM posts ORDER BY time DESC LIMIT 8"; 
  $query = mysql_query($sql)or die(mysql_error());

  $count = 0; // Initialize counter
$rows = array();
while($row = mysql_fetch_array( $query )) {
    $rows[++$count] = $row;
  }

行は配列に入れられました。それぞれの中には:user、postcontent、time(timegaoの計算に使用します)

次のようにtimeagoスクリプト:

function timeago($time)  
    {  
    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");  
    $lengths = array("60","60","24","7","4.35","12","10");  

    $now = time();

    $format = strtotime($time);
    $difference     = $now - $format;  
    $tense         = "ago";  

    for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++)   
        {  
        $difference /= $lengths[$j];  
        }  

    $difference = round($difference);  

    if($difference != 1)   
        {  
        $periods[$j].= "s";  
        }  

    return "$difference $periods[$j] $tense";  
    }  

各配列行をループし、タイムアウトを取得し、timeago関数を使用して計算し、結果を「timeago」:「value-calculated」として各配列行に挿入するにはどうすればよいですか?

4

2 に答える 2

0
$rows = array();
while($row = mysql_fetch_array( $query )) {
  $rows .= timeago($row['time']);
}
于 2012-07-06T06:25:54.163 に答える
0

以下のように、PS:$counterは必要ありません。

$rows = array();
while($row = mysql_fetch_array( $query )) {
  $row['timeago'] = timeago($row['time']);
  $rows[] = $row;
}
于 2012-07-06T06:13:29.257 に答える