如何在 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 格式

如何在 Java 中将 ZonedDateTime 转换为毫秒?

如何在android中将毫秒转换为日期格式?

如何在 Django 中将日期时间转换为毫秒?

如何在 C++ 中将毫秒时间转换为 FILETIME

如何在 Redshift 中将时间戳(具有毫秒)转换为 EPOCH