如何计算AngularJS中2个日期时间对象的时差?

Lea*_*sed -1 javascript angularjs angularjs-ng-repeat

我是AngularJS的新手,我想计算时间差two datetime object with format:

小时:分钟:秒

但我希望及时获得两位数输出:

预期输出:00:00:04

输入:

StartDate=2016-06-29 15:52:32.360

EndDate=2016-06-29 15:53:36.970

Expected output: 00 : 01 : 04
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public class User
{
      public int Id { get; set; }
      public Nullable<System.DateTime> StartDateTime { get; set; }
      public Nullable<System.DateTime> EndDateTime { get; set; }
}

Json output:

[
  {
    "Id": 121,
    "StartDateTime": "\/Date(1467195752360)\/",  //2016-06-29 15:52:32.360
    "EndDateTime": "\/Date(1467195756970)\/", //2016-06-29 15:53:36.970
  },
  {
    "Id": 122,
   "StartDateTime": "\/Date(1467195752360)\/",// 2016-06-29 15:52:32.360

    "EndDateTime": "\/Date(1467195758360)\/", //2016-06-29 15:53:36.970
  }
]
Run Code Online (Sandbox Code Playgroud)

码:

 <td  ng-repeat="item in User">
      //How to display time difference here
      <p> Hour : Minutes : Seconds  </p
  </td>
Run Code Online (Sandbox Code Playgroud)

Dee*_*eep 6

您可以使用ng-repeat中的过滤器来实现它:

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

app.controller('mainCtrl', function ($scope) {
  $scope.timeSlots = [  
     {  
        "startDate":1467195752360,
        "endDate":1467195756970
     },
     {  
        "startDate":1467195752360,
        "endDate":1467195758360
     }
  ];
});

app.filter("getDiff", function() {
  return function(time) {
    var startDate = new Date(time.startDate);
    var endDate = new Date(time.endDate);
    var milisecondsDiff = endDate - startDate;
    
      return Math.floor(milisecondsDiff/(1000*60*60)).toLocaleString(undefined, {minimumIntegerDigits: 2}) + ":" + (Math.floor(milisecondsDiff/(1000*60))%60).toLocaleString(undefined, {minimumIntegerDigits: 2})  + ":" + (Math.floor(milisecondsDiff/1000)%60).toLocaleString(undefined, {minimumIntegerDigits: 2}) ;
  
  }
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html ng-app="app">

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>

<body ng-controller="mainCtrl">
   <p ng-repeat = "time in timeSlots" ng-bind="time | getDiff">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)