2016-11-25 133 views
0

我們必須跟蹤一些用戶(員工)在我們的網站(後端工具,他們已登錄)花費的時間。從mysql獲取24小時活動(時間跟蹤)

目前我們在保存信息到一個MySQL表每5分鐘(根據活動(頁開)或顯示/閱讀頁面(通過Ajax更新,解僱每5分鐘)。

在MySQL中,我們存儲用戶ID和MySQL的時間戳

+----+---------------------+ 
| id |  timestamp  | 
+----+---------------------+ 
| 28 | 2016-11-25 15:51:25 | 
| 28 | 2016-11-25 15:55:00 | 
| 28 | 2016-11-25 16:00:00 | 
| 28 | 2016-11-25 16:05:00 | 
| 28 | 2016-11-25 16:10:00 | 
| 28 | 2016-11-25 16:15:00 | 
| 28 | 2016-11-25 16:55:00 | 
| 28 | 2016-11-25 17:00:00 | 
| 28 | 2016-11-25 17:05:00 | 
| 28 | 2016-11-25 17:10:00 | 
| 28 | 2016-11-25 17:15:00 | 
| 28 | 2016-11-25 17:20:00 | 
| 28 | 2016-11-25 17:25:00 | 
+----+---------------------+ 

什麼是您的建議來檢索「活動協議」在給定的時間內給定的用戶。

即「顯示所有時間」。哪裏用戶主動昨天,上週,上個月已經」

用戶28於11月25日的結果應該給像一個結果:

2016-11-25 -> 49 minutes 
15:51-16:15 (24 min) 
17:00-17:25 (25 min) 

從數據庫中選擇這些時間是沒有問題的,但我們如何能結合那些智能格式...

昨天:8小時15分, 過去一週52小時35分鐘, 上個月:175小時45分鐘

也是一個「提示」上如何 得到一個不錯的圖形表示將是非常有益:

Weelky "hour" report

+0

當然,我也開放其他任何方法 - 目標是看看用戶真正在網站上工作了多長時間。需要完全的瀏覽器集成和沒有插件等...... –

+0

如何使用谷歌分析與自定義日誌記錄? – chris85

+0

好的,但如果用戶在一天中退出,然後回來。你應該使用什麼規則? –

回答

0

一種方法可以劃分時間列表爲範圍。每個範圍將表示用戶處於活動狀態的時間段。接下來我們需要找出每個範圍的時間跨度。時間跨度可以通過查找範圍內最高和最低時間之間的差異來計算。然後,我們可以爲所有範圍添加時間跨度。這將給出用戶活躍的時間量。