Как конвертировать миллисекунды в минуты в AngularJS - PullRequest
0 голосов
/ 27 мая 2018

В моем вопросе я хочу отобразить значения 4 сущностей (я получаю эти значения со стороны сервера в миллисекундах) в минутах.Я могу легко сделать, используя пользовательский фильтр.Но я хочу отобразить это с помощью функции, а не пользовательского фильтра

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

Теперь мой код

$scope.itemTypes = itemTypes; // itemTypes is a global variable

$scope.selectedItem = {};  // In this variable I am storing all parameters of one particular item type.


if(selectedItemIndex > -1){
$scope.selectedItem = $scope.itemTypes[selectedItemIndex];
}

Теперь этот $ scope.selectedItem имеет 10 параметров при каждом выборе частичного типа iem.

4 из этих параметров в миллисекундах, мне нужно отобразить эти 4 в минутах

Я не хочу использовать фильтр, вместо этого я хочу использовать функцию getTimeInMinute

Я хочу отображать только в минутах, а не в секундах

Это моя функция

$scope.getTimeInMinute = function(timeInMilli){
var ms = timeInMilli;
ms = 1000*Math.round(ms/1000); // round to nearest second
var d = new Date(ms);
//console.log(d.getUTCMinutes());
var x = d.getUTCMinutes()
return x;
}

Я получил эту функцию из этого вопроса Stackoverflow (ссылка предоставлена) Ссылка 1

В моем шаблоне я хочу отобразить вот так

<div>{{getTimeInMinute(selectedItem.parameter1)}}</div>
<div>{{getTimeInMinute(selectedItem.parameter2)}}</div>
<div>{{getTimeInMinute(selectedItem.parameter3)}}</div>
<div>{{getTimeInMinute(selectedItem.parameter4)}}</div>

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

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Используйте java-скрипт: moment.js libary

var x = 433276000
var tempTime = moment.duration(x);
var y = tempTime.hours() + tempTime.minutes();
0 голосов
/ 27 мая 2018

Если вы получаете время в миллисекундах, а не метку времени (миллисекунды с 01.01.1970), не делайте дату из миллисекунд, вместо этого просто делите еще немного, пока не получите минуты, а затем (возможно) округлитечисло:

$scope.getTimeInMinute = function(timeInMilli){
  let seconds = timeInMilli/1000;
  let minutes = seconds/60;
  return Math.floor(minutes);
}

Вот как пример без угловых

function getTimeInMinute(timeInMilli){
  let seconds = timeInMilli/1000;
  let minutes = seconds/60;
  return Math.floor(minutes);
}

console.log(getTimeInMinute(1334000));

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

var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
  $scope.getTimeInMinute = function(timeInMilli){
    let seconds = timeInMilli/1000;
    let minutes = seconds/60;
    return Math.floor(minutes);
  }
  
  $scope.selectedItem = {};
  
  $scope.selectedItem.parameter1 = 600000;
  $scope.selectedItem.parameter2 = 240000;
  $scope.selectedItem.parameter3 = 480000;
  $scope.selectedItem.parameter4 = 360000;
  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <div>{{getTimeInMinute(selectedItem.parameter1)}}</div>
  <div>{{getTimeInMinute(selectedItem.parameter2)}}</div>
  <div>{{getTimeInMinute(selectedItem.parameter3)}}</div>
  <div>{{getTimeInMinute(selectedItem.parameter4)}}</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...