JQuery - форматирование миллисекунд в чч: мм: сс: ссс

0

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

var msec_num      = parseInt(duration, 10) / 100; 
var hours        = Math.floor(msec_num / 3600 );
var minutes      = Math.floor((msec_num - (hours * 3600)) / 60);
var seconds      = Math.floor((msec_num - (hours * 3600) - (minutes * 60)) / 60 / 1000 );
var milliseconds = ( msec_num - ((hours * 3600) - (minutes * 60) - (seconds)) / 1000 ) * 100;

if (hours   < 10) {hours   = "0"+hours;}
if (minutes < 10) {minutes = "0"+minutes;}
if (seconds < 10) {seconds = "0"+seconds;}
if (milliseconds < 10) {milliseconds = "0"+milliseconds;}

var time    = hours + ":" + minutes + ":" + seconds + ":" + milliseconds;

если я тестирую, используя значение (продолжительность = 1091 мс), он дает мне это: 00: 00: 00: 1091???

Как я могу понять, что все значение отлично работает?

Теги:
milliseconds

4 ответа

2
Лучший ответ

Используйте " продолжительность " Moment.js, чтобы сделать его легким!

var duration = moment.duration(parseInt(duration, 10));
var addZero = function(v) { return (v<10 ? '0' : '') + Math.floor(v); };

var time = addZero(duration.hours()) +
     ':' + addZero(duration.minutes()) +
     ':' + addZero(duration.seconds()) +
     ':' + addZero(duration.milliseconds());
  • 0
    Как я могу установить формат миллисекунд с 2 цифрами ?? Примерно так -> если у меня 192мс, чем показывать: 19 -> если у меня 82мс, чем показывать: 08
  • 0
    Ничего себе это работает, я разделил (duration.milliseconds () / 10). Спасибо, Бенджамин
2

похоже, что у вас проблема с 100 вместо 1000

var duration = 1091;
var milliseconds = (duration % 1000); duration = Math.floor(duration/1000);
var seconds = (duration % 60); duration = Math.floor(duration/60);
var minutes = (duration % 60); duration = Math.floor(duration/60);
var hours = duration;
  • 0
    Не могу понять ??
  • 0
    @kach 1 секунда состоит из 1000 миллисекунд
Показать ещё 4 комментария
1

Попробуйте это - Moment.js - библиотека дат javascript для парсинга, проверки, управления и форматирования дат.

0

Если я прочитаю документацию Moment.js, это может быть намного проще:

moment(parseInt(duration, 10)).format('h:mm:ss');

Поправьте меня если я ошибаюсь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню