2011-08-27 23 views
1

我已經在php中創建了一個簡單的在線用戶腳本,到目前爲止它代表了這一點。從mysql表中減去最後一次活動的時間()?

$online_users = time() - 900; 

$q = $dbc -> prepare("SELECT * FROM accounts WHERE online > ? ORDER BY username"); 
$q -> execute(array($online_users)); 
$result = $q -> rowCount(); 

在每個成員的頁面上,'在線'這一行在每次用戶點擊時用當前時間()更新。

正如你可以看到$ online_users,是當前時間減去15分鐘。然後,我可以在過去的15分鐘內瞭解他們是否在網站上活躍,並做一段時間循環來展示他們。

我的問題是,我怎樣才能找到確切的時間,他們沒有被激活,因此我可以顯示一條消息說:

「最近活動45秒前」或「最近活動14mins前」

我希望我已經解釋了這不夠好,感謝:)

回答

1

我想我可能會誤解你的問題,但是這應該是就像從當前時間中減去上次活動時間(在您的數據庫中)一樣簡單。

$inactive_time = time() - last_activity; 

然後,您可以通過查看「$ inactive_time」是否大於「60」來確定是否顯示「秒」或「分鐘」。

1

試試這個:

$resulted_account = $q->fetchAll(); 

foreach($resulted_account as $account) { 
    $inactive_time = $account['online'] - $online_users; 
    if ($inactive_time < 60) { 
     echo "Last active $inactive_time seconds ago"; 
    } else { 
     echo "Last active" .date("i", $inactive_time) . "minutes ago";   
    } 
} 
+0

這個作品的錯誤,在它的一些錯誤,但它是definetely比我不得不感謝 – carlgcoder

+0

@carlgcoder我無法檢查該代碼,這樣的你怎麼這個唯一的例子更好可以做到。 –

+0

什麼錯誤是? –