首页 > 解决方案 > 如何在 AngularJS 中将毫秒转换为分钟

问题描述

在我的问题中,我想在几分钟内显示 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];
}

现在,只要选择了部分 iem 类型,此 $scope.selectedItem 就有 10 个参数。

其中 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>

我无法使用函数以毫秒为单位显示数据。我可以轻松地使用自定义过滤器。但我想使用函数而不是自定义过滤器来显示它

标签: javascriptangularjs

解决方案


如果您以毫秒为单位而不是时间戳(自 1970 年 1 月 1 日以来的毫秒数)获取时间,请不要从毫秒数中创建日期,而只需再除以一些直到您得到分钟,然后(也许)将数字四舍五入:

$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>


推荐阅读