Объединить показания устройства в объекте JSON - Javascript - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть устройства на местах, которые отправляют показания в формате сессий в базу данных.Эти сеансы имеют время начала, время окончания и значение времени сеанса (указывающее, как долго длился сеанс).Когда я вызываю базу данных (MySQL), она отправляет мне обратно каждую строку с указанием времени начала, окончания и продолжительности каждого сеанса для устройства в определенный месяц, который я запрашиваю (например, я могу отправить его в декабре 2018 года для всех сеансов втот месяц).Вот что база данных отправляет мне обратно:

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, но я не уверен, как приблизиться к суммированию длительностей за день и какчтобы получить его в формате JSON.Не могли бы вы помочь мне?

ПРИМЕЧАНИЕ : Я принимаю день только как дату окончания.Таким образом, если сеанс начался 2018-12-01 и закончился 2018-12-02, я добавлю продолжительность сеанса только к значению 2018-12-02.

1 Ответ

0 голосов
/ 24 декабря 2018

Я не уверен, как выглядит ваша кодовая база, но вам необходимо выполнить следующие шаги:

  • Назовите объект data иназовите первый ключ в объекте дата .

  • Назовите второе поле с именем duration .

  • Установите значение date для даты, которую запросил пользователь.

  • В вашем для каждого, который проходит через каждое устройство, вычислите разницу между вашим временем окончания и временем запуска.

Я старался изо всех сил, чтобы понять ваш вопрос, и, насколько я понимаю, вы хотите, чтобы общее время всех устройств во время сеанса.

Итак:

  • Инициализируйте duration , установив его в 0.
  • Затем, в каждом для, добавьте разницу между вашими конечнымивремя и время начала до длительность .
  • Вернуть объект пользователю.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...