我在这个领域有一些设备,可以把阅读资料以会话的形式发送到数据库。这些会话具有开始时间、结束时间和会话时间值(指示会话的持续时间)。当我调用数据库(mysql)时,它会在我请求的一个月内,将设备的每一个会话的开始、结束和持续时间发送回每一行(例如,我可以在2018年12月发送该月的所有会话)。这是数据库返回给我的:
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对象,该对象包含一个月中每一天的条目,以及该天会话的总持续时间的值。请注意,每一天应该只有一个条目,即该天所有持续时间的总和。见下表:
{
"2018-12-01": "02:12:54", <-- duration in HH:mm:ss
"2018-12-02": "01:43:52",
...
}
我目前拥有的代码可以通过从mysql数据库接收的行执行for-each循环,但是我不确定如何接近每天持续时间的总和,以及如何将其正确地放入json中。你能帮帮我吗?
注:我只把这一天作为结束日期。因此,如果会话开始于2018-12-01,结束于2018-12-02,我将仅将会话的持续时间添加到2018-12-02的值中。
1条答案
按热度按时间toe950271#
我不确定您的代码库是什么样子的,但以下是您需要采取的步骤:
命名对象数据,并命名对象日期中的第一个键。
命名另一个名为duration的字段。
将date的值设置为用户请求的日期。
在for-each中,计算通过每个设备的结束时间和开始时间之间的差。
我尽力理解你的问题,据我所知,你想要的是会话中所有设备的总时间。
所以:
通过将持续时间设置为0来初始化持续时间。
然后,在for each中,将结束时间和开始时间之间的差异添加到duration中。
将对象返回给用户。
希望这有帮助!