连接JSON对象中的设备读数-Javascript

时间:2018-12-24 08:09:20

标签: javascript mysql json date

我在现场有一些设备,可以将会话形式的读数发送到数据库。这些会话具有开始时间,结束时间和会话时间值(指示会话持续了多长时间)。当我调用数据库(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数据库接收的行中的每个循环执行一个a,但是我不确定如何计算每天的持续时间的总和以及如何正确地将其转换为JSON。你能帮我吗?

注意:我仅以当天作为结束日期。因此,如果会话从2018年12月1日开始到2018年12月2日结束,我将仅将会话的持续时间添加到2018年12月2日的值中。

1 个答案:

答案 0 :(得分:2)

我不确定您的代码库是什么样的,但是您需要采取以下步骤:

  • 命名对象 data ,并命名对象 date 中的第一个键。

  • 命名第二个字段,称为 duration

  • 将date的值设置为用户请求的日期。

  • 在您要通过的每台设备上,计算结束时间和开始时间之间的差。

我尽力理解您的问题,根据我的理解,您希望在会话中使用所有设备的总时间。

所以:

    通过将其设置为0,
  • 初始化持续时间
  • 然后在每个中,将结束时间和开始时间之间的差值添加到持续时间
  • 将对象返回给用户。

希望这会有所帮助!