首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AngularJS -如何将毫秒转换为xHours和yMins

AngularJS -如何将毫秒转换为xHours和yMins
EN

Stack Overflow用户
提问于 2013-11-25 22:54:57
回答 9查看 31K关注 0票数 19

我有一个要求,我想在AngularJS中将毫秒转换为xHours和yMins。

对于ex。3600000应显示为1h 0m。

我试着在Angular的网站上使用date formats上的date:'H:m'date:'HH:mm'

但是那些给出的是19:0和19:00而不是1h 0m。

任何实现这一点的指针都将是有帮助的。

谢谢

EN

回答 9

Stack Overflow用户

发布于 2014-09-11 12:24:35

让我们为此创建一个自定义过滤器,例如:

代码语言:javascript
复制
.filter('millSecondsToTimeString', function() {
  return function(millseconds) {
    var oneSecond = 1000;
    var oneMinute = oneSecond * 60;
    var oneHour = oneMinute * 60;
    var oneDay = oneHour * 24;

    var seconds = Math.floor((millseconds % oneMinute) / oneSecond);
    var minutes = Math.floor((millseconds % oneHour) / oneMinute);
    var hours = Math.floor((millseconds % oneDay) / oneHour);
    var days = Math.floor(millseconds / oneDay);

    var timeString = '';
    if (days !== 0) {
        timeString += (days !== 1) ? (days + ' days ') : (days + ' day ');
    }
    if (hours !== 0) {
        timeString += (hours !== 1) ? (hours + ' hours ') : (hours + ' hour ');
    }
    if (minutes !== 0) {
        timeString += (minutes !== 1) ? (minutes + ' minutes ') : (minutes + ' minute ');
    }
    if (seconds !== 0 || millseconds < 1000) {
        timeString += (seconds !== 1) ? (seconds + ' seconds ') : (seconds + ' second ');
    }

    return timeString;
};
});

然后使用它:

代码语言:javascript
复制
<div>{{ millSeconds | millSecondsToTimeString }}</div>
票数 31
EN

Stack Overflow用户

发布于 2015-03-04 19:53:05

AngularJS中有日期转换器,只需设置所需的日期格式:

代码语言:javascript
复制
{{milliseconds | date:'yyyy-MM-dd HH:mm'}}

我还使用jQuery timeago()函数创建了这样的'timeAgo‘过滤器:

代码语言:javascript
复制
.filter('timeAgo', function() {
    return function(input) {
        if (input == null) return "";
        return jQuery.timeago(input);
    };
})

用法:

代码语言:javascript
复制
{{milliseconds | timeAgo}}

或者将这两种格式一起使用以实现宽日期表示:

代码语言:javascript
复制
<span>{{milliseconds | timeAgo}}, {{milliseconds  | date:'yyyy-MM-dd HH:mm'}}</span>

结果:

代码语言:javascript
复制
12 minutes ago, 2015-03-04 11:38
票数 11
EN

Stack Overflow用户

发布于 2013-11-26 00:42:23

您将希望使用moment's持续时间对象。

要执行您想要的操作,请尝试以下操作:

代码语言:javascript
复制
app.controller 'MainCtrl', ($scope) ->
    $scope.name = 'World'
    $scope.milliseconds = 3600000
    $scope.duration = moment.duration($scope.milliseconds)

和标记

代码语言:javascript
复制
<body ng-controller="MainCtrl">
  <p>Milliseconds: {{milliseconds}}</p>
  <p>Duration: {{duration.hours()}}h {{duration.minutes()}}m</p>
</body>

plunkr:http://plnkr.co/edit/2HL75Tmr4CoAy5R9smkx

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20196113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档