2015-04-23 5 views
-2

Я просматривал этот код, но не может реально найти любойПреобразовать миллисекунды HH: MM: SS

пытался использовать угловую фильтрацию {{bla.bla | date: 'HH: mm: ss'}}

но он не работает. Может кто-нибудь мне помочь? благодаря!

+1

дубликат http://stackoverflow.com/questions/20196113/angularjs-how-do-you-convert-milliseconds-to-xhours-and-ymins –

+0

Попробуйте следующее: {{today | date: 'mediumTime'}} {{today | date: 'shortTime'}}

+0

{{today | дата: 'hh: mm: ss.sss'}} это тоже будет работать –

ответ

1
filter('songTime',function(){ 

    return function (s) { 
     var ms = s % 1000; 
     s = (s - ms)/1000; 
     var secs = s % 60; 
     s = (s - secs)/60; 
     var mins = s % 60; 
     var hrs = (s - mins)/60; 

     return hrs + ':' + mins + ':' + secs + ':' + ms;   
    }; 
} 

и использовать его как {{bla.bla | songTime}}. Вы можете украсить дату внутри фильтра.

+0

bla bla bla происходит от API-интерфейса sir и динамически, но значение равно миллисекундам – Foster

+0

Вам нужно поделиться фрагментом кода, чтобы показать свои вопрос. Вы посмотрели ссылку plnkr. – Kathir

+0

Речь идет не о сегодняшней дате сэр, в основном bla.bla вернет значение, которое является временем воспроизведения песни, и мне нужно преобразовать его в HH; MM: SS, потому что он сохраняется в миллисекундах. например, 170000 миллисекунд до 00:02:40 или так – Foster

1

Я только что наткнулся на этот вопрос, ища ответ, но не нашел хорошего решения, поэтому я сделал свой собственный фильтр, который делает это, если кому-то это нужно.

app.filter('formatDuration', function() { 
    return function (input) { 
     var totalHours, totalMinutes, totalSeconds, hours, minutes, seconds, result=''; 

     totalSeconds = input/1000; 
     totalMinutes = totalSeconds/60; 
     totalHours = totalMinutes/60; 

     seconds = Math.floor(totalSeconds) % 60; 
     minutes = Math.floor(totalMinutes) % 60; 
     hours = Math.floor(totalHours) % 60; 

     if (hours !== 0) { 
      result += hours+':'; 

      if (minutes.toString().length == 1) { 
       minutes = '0'+minutes; 
      } 
     } 

     result += minutes+':'; 

     if (seconds.toString().length == 1) { 
      seconds = '0'+seconds; 
     } 

     result += seconds; 

     return result; 
    }; 
}); 

Вот пример его использования в:

{{247000 | formatDuration}} --> Result: 4:07 
{{4748000 | formatDuration}} --> Result: 1:19:08 

Это будет работать с любым количеством часов, минут и секунд, и включает в себя ведущие нули на числа, когда это необходимо.

Смежные вопросы