Страницы

Поиск по вопросам

пятница, 29 марта 2019 г.

сосчитать время указанное в атрибуте html

Есть такая структура html:
const timeNodes = Array.from(document.querySelectorAll('[data-time]')); Videos

  • Video 1
  • Video 2
  • Video 3
  • Video 4

помогите посчитать или подскажите как узнать продолжительность всех видео. Их длительность указана в аттрибуте data-time=""


Ответ

Пара функций, первая считает число секунд, вторая форматирует секунды.
// Суммируем результаты обработки отдельных строк с помощью reduce const secs = list => list.reduce((sum, str) => { // разбиваем строку по двоеточиям, относимся к результату, как к числу в 60-ричной системе let parts = str.split(':'); // Складываем 60-ричные разряды let q = 1; while (parts.length) { sum += q * parts.pop(); q *= 60; } return sum; }, 0); // Обратная операция, перевод числа секунд в 60-ричный вид. const fmt = secs => { let parts = []; // позиции while (secs > 0) { parts.unshift(secs % 60); // вдвигаем позицию слева secs = secs/60 |0; // целочисленное деление } return parts.map(d => d<10?'0'+d:''+d) // Добавляем ведущие нули .join(':'); } let list = ['1:00:00', '12:55', '00:07']; let sum = secs(list); let time = fmt(sum); console.info(sum, time)

Комментариев нет:

Отправить комментарий