javascript - 如何在 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>
我无法使用函数以毫秒为单位显示数据。我可以轻松地使用自定义过滤器。但我想使用函数而不是自定义过滤器来显示它
解决方案
如果您以毫秒为单位而不是时间戳(自 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>
推荐阅读
- java - 我的 EditText 的 setText 没有编译器错误,但应用程序强制关闭
- android - 通知不适用于 Android Oreo
- python - 如何在机器人框架中运行这个循环?
- laravel-5.7 - 如何在 Laravel 5.7 中为 RESTFull API 上传多个媒体文件“图像或视频”?
- python - 使用我的 32 位 Windows 7,python 3.7 出现错误“没有名为‘prometheus_client’的模块
- javascript - 如何遍历选定的
- javascript - 为什么 getElementById 在那个词中?g 小,e 和 i 字大写?
- gradle - 无法在 gradler 任务中解析类 HTTPBuilder
- typescript - 可选时传递错误的参数名称时出现打字稿错误
- python-3.x - 如何管理来自不同布局的屏幕