0

我们必须跟踪一些用户(员工)在我们的网站上花费的时间(后端工具,他们已登录)。

目前,我们每 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 |
+----+---------------------+

在给定时间段内为给定用户检索“活动协议”的建议是什么。

即“显示所有时间”,用户昨天、上周、上个月一直处于活动状态”

用户 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 分钟

关于如何获得漂亮的图形表示的“提示”也将非常有帮助:

小丑

4

1 回答 1

0

一种方法可以是将时间列表划分为多个范围。每个范围将代表用户处于活动状态的时间段。接下来我们需要找到每个范围的时间跨度。时间跨度可以通过查找范围内最高和最低时间之间的差异来计算。然后我们可以添加所有范围的时间跨度。这将给出用户处于活动状态的时间量。

于 2016-11-26T10:25:04.523 回答