将毫秒转换为HH:MM:SS

时间:2015-04-23 16:40:56

标签: angularjs

我一直在查看此代码,但无法找到任何

尝试使用角度过滤{{bla.bla |日期: 'HH:MM:SS'}}

但它不起作用。 有人可以帮我吗?谢谢!

2 个答案:

答案 0 :(得分: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}}。您可以美化过滤器内的日期。

答案 1 :(得分: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

这将适用于任何小时数,分钟数和秒数,并在必要时包含前导零数字。