我在现场有设备可以将 session 格式的读数发送到数据库。这些 session 有一个开始时间、一个结束时间和一个 session 时间值(表示 session 持续了多长时间)。当我调用数据库 (MySQL) 时,它会在我请求的定义月份(例如,我可以在 2018 年 12 月为所有 session 发送回设备的每个 session 的开始、结束和持续时间的每一行那个月)。这是数据库发回给我的:
DeviceUID: xxx-xxx-xxx
Start Date: 2018-12-10T17:12:31.000Z
End Date: 2018-12-10T21:32:12.000Z <- I convert this to YY:MM:DD HH:mm:ss
Duration: 16237312 <- This is a value in seconds
我想做的是创建一个 JSON 对象,该对象包含每个月的每一天的条目,以及当天 session 总持续时间的值。请注意,每一天都应该只有一个条目,即当天所有持续时间的总和。见下文:
{
"2018-12-01": "02:12:54", <-- duration in HH:mm:ss
"2018-12-02": "01:43:52",
...
}
我目前拥有的代码可以对从 MySQL 数据库接收到的行进行 for each 循环,但我不确定如何处理每天的持续时间总和以及如何将其正确地放入 JSON 中。你能帮帮我吗?
注意:我只将这一天作为结束日期。因此,如果 session 于 2018-12-01 开始并于 2018-12-02 结束,我将仅将 session 的持续时间添加到 2018-12-02 的值。
最佳答案
我不确定您的代码库是什么样的,但这些是您需要采取的步骤:
将对象命名为data,并将对象中的第一个键命名为date。
将第二个字段命名为duration。
将 date 的值设置为用户请求的日期。
在您的每个通过每个设备的过程中,计算您的结束时间和开始时间之间的差异。
我已尽力理解您的问题,据我了解,您需要 session 中所有设备的总时间。
所以:
- 通过将其设置为 0 来初始化duration。
- 然后,在 for each 中,将结束时间和开始时间之间的差值添加到duration。
- 将对象返回给用户。
希望这对您有所帮助!
关于javascript - 连接 JSON 对象中的设备读数 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53910806/