Как добавить средние часы, минуты, секунды и миллисекунды js? - PullRequest
0 голосов
/ 14 апреля 2020

В приведенном ниже примере среднее из трех значений составляет 01: 42: 22: 566, мой вопрос: как это сделать в javascript.

     <form action="/action_page.php">
      <label for="vOne">Value One:</label>
      <input type="text" id="vOne" name="vOne" value="01:01:01:100"><br><br>
      <label for="vTwo">Value Two:</label>
      <input type="text" id="vTwo" name="vTwo" value="01:30:45:700"><br><br>
      <label for="vThree">Value Three:</label>
      <input type="text" id="vThree" name="vThree" value="02:35:20:900"><br><br>
      <label for="sumValue">Sum Value:</label>
      <input type="text" id="sumValue" name="sumValue" value="05:07:07:700"><br><br>

      <label for="aResult">Average Result:</label>
      <input type="text" id="aResult" name="aResult" value="01:42:22:566"><br><br>

      <input type="button" value="average">
 </form>

1 Ответ

1 голос
/ 14 апреля 2020

Вам необходимо:

  • преобразовать строки в Date объект
  • cal c среднее
  • преобразовать значение в строку

Попробуйте что-то вроде:

const dates = [
  '01:01:01:100',
  '01:30:45:700',
  '02:35:20:900',
].map((date) => new Date(0, 0, 0, ...date.split(':')));
const average = new Date(dates.reduce((a, b) => +b + a, 0) / dates.length);
const averageString =
  average.toLocaleTimeString() + ':' + average.getMilliseconds(); 
console.log(averageString); // "01:42:22:567"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...