JavaScript - часы, минуты, секунды, миллисекунды и секунды с плавающей запятой для html звука - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно преобразовать строку с часами, минутами, секундами и миллисекундами «чч: мм: сс: мил» в число с плавающей точкой, которое HTML аудиоплеер использует для currentTime.

Я могу не найти какой-либо алгоритм преобразования, который делает это! Ближайший, который я нашел, конвертируется в секунды как целые числа, а мне нужно что-то вроде этого

"00: 00: 38: 000" -> 38.0 (НЕ 2280)

"01:15 : 02: 773 "-> 4502,773

Пока мой код - но это неправильно

function time2secs(time) {
    // 00:03:30 -> 3.5 seconds
    var t = time.split(':');
    if (t.length < 4) t[3] = 0; // if a missing millisecs, then set it to 0

    var seconds = parseInt(t[0]) * 60 * 60 + parseInt(t[1]) * 60 + parseInt(t[2]) + parseInt(t[3]) / 1000;

    return seconds / 60;
}

Ответы [ 2 ]

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

попробуйте

function timeToSec(time){
    var arr=time.split(":");
  return parseInt(arr[0])*3600+ parseInt(arr[1])*60+ parseInt(arr[2])+ parseInt(arr[3])*0.1000
}
console.log(timeToSec("00:00:38:000" ))
console.log(timeToSec("01:15:02:773" ))
0 голосов
/ 13 апреля 2020

Этот код работает так, как вы ожидаете?

function time2secs(time) {
    var t = time.split(':');
    if (t.length < 4) t[3] = 0;

    let second = (parseInt(t[0]) * 60 * 60) + (parseInt(t[1]) * 60) + parseInt(t[2]) + (parseInt(t[3]) / 1000);
    return t[3] == 0 ? second + ".0" : second;

}
...