如何在 AngularJS 中将毫秒转换为分钟
Posted
技术标签:
【中文标题】如何在 AngularJS 中将毫秒转换为分钟【英文标题】:How to convert millisecond to minutes in AngularJS 【发布时间】:2018-05-27 13:24:25 【问题描述】:在我的问题中,我想在几分钟内显示 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;
我从这个 *** 问题(提供的链接)中得到了这个函数 Link 1
在我的模板中我想这样显示
<div>getTimeInMinute(selectedItem.parameter1)</div>
<div>getTimeInMinute(selectedItem.parameter2)</div>
<div>getTimeInMinute(selectedItem.parameter3)</div>
<div>getTimeInMinute(selectedItem.parameter4)</div>
我无法使用函数以毫秒为单位显示数据。我可以轻松地使用自定义过滤器。但我想使用函数而不是自定义过滤器来显示它
【问题讨论】:
你得到的是时间戳还是毫秒? ***.com/users/6634591/luca 我正在以毫秒为单位从 web 服务获取值 【参考方案1】:如果您以毫秒为单位而不是时间戳(自 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>
【讨论】:
Luca 你能给我一把小提琴吗?假设我在 ms 中的 parameter1 值是 600000,parameter2 是 240000,parameter3 是 480000,parameter4 是 360000。我在 html 模板中显示时遇到问题。如果您提供 HTML 和 JS 的小提琴,那就太好了 好的。我有时间,没问题 卢卡非常感谢。我选择了你的答案作为正确的答案。 卢卡你能告诉我为什么这个约定被遵循毫秒 - 01/01/1970 这可能会对您有所帮助:***.com/questions/1090869/…【参考方案2】:使用 java 脚本:moment.js 库
var x = 433276000
var tempTime = moment.duration(x);
var y = tempTime.hours() + tempTime.minutes();
【讨论】:
我只想要几分钟以上是关于如何在 AngularJS 中将毫秒转换为分钟的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle 中将毫秒转换为 hh mm ss 格式