AngularJS - How do you convert milliseconds to xHours and yMins AngularJS - How do you convert milliseconds to xHours and yMins javascript javascript

AngularJS - How do you convert milliseconds to xHours and yMins


Let make a custom filter for this, e.g:

.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;};});

Then use it:

<div>{{ millSeconds | millSecondsToTimeString }}</div>


There is date converter in AngularJS, just set required date format:

{{milliseconds | date:'yyyy-MM-dd HH:mm'}}

Also I created such 'timeAgo' filter using jQuery timeago() function:

.filter('timeAgo', function() {    return function(input) {        if (input == null) return "";        return jQuery.timeago(input);    };})

Usage:

{{milliseconds | timeAgo}}

or use together both format for wide date representation:

<span>{{milliseconds | timeAgo}}, {{milliseconds  | date:'yyyy-MM-dd HH:mm'}}</span>

Result:

12 minutes ago, 2015-03-04 11:38


You'll want to use moment's duration objects.

To do what you want, try this:

app.controller 'MainCtrl', ($scope) ->    $scope.name = 'World'    $scope.milliseconds = 3600000    $scope.duration = moment.duration($scope.milliseconds)

And the markup

<body ng-controller="MainCtrl">  <p>Milliseconds: {{milliseconds}}</p>  <p>Duration: {{duration.hours()}}h {{duration.minutes()}}m</p></body>

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