我们必须跟踪一些用户(员工)在我们网站上花费的时间(后端工具,他们已登录)。
目前我们每隔5分钟将信息保存到MySQL表中(基于活动(打开页面)或显示/读取页面(通过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 |
+----+---------------------+
您建议在给定时间段内为给定用户检索“活动协议”。
即。 “显示所有时间”,用户昨天,上周,上个月一直处于活动状态“
11月25日用户28的结果应该给出如下结果:
2016-11-25 -> 49 minutes
15:51-16:15 (24 min)
17:00-17:25 (25 min)
从数据库中选择这些时间不是问题,但我们如何将它们与智能格式相结合......
昨天:8小时15分钟, 上周:52小时35分钟, 上个月:175小时45分钟关于如何获得漂亮的图形表示的“提示”将非常有用:
答案 0 :(得分:0)
一种方法是将时间表划分为范围。每个范围将表示用户处于活动状态的时间段。接下来我们需要找到每个范围的时间跨度。可以通过查找范围中最高和最低时间之间的差异来计算时间跨度。然后我们可以为所有范围添加时间跨度。这将给出用户活动的时间量。