Javascript 如何以AngularJS计算时间差?

Javascript 如何以AngularJS计算时间差?,javascript,angularjs,Javascript,Angularjs,我以字符串格式获取时间,我想以分钟为单位计算两者之间的时间差。我该怎么做?您可以使用该库: 您可以将此调用包装到函数中: $scope.timeDifference = function(start, end) { return moment.utc(moment(end).diff(moment(start))).format("HH:mm"); } 然后,在你看来: {{ timeDifference("15:40", "16:20") }} 以下是一种获得小时、分钟和秒差异的方法:

我以字符串格式获取时间,我想以分钟为单位计算两者之间的时间差。我该怎么做?

您可以使用该库:

您可以将此调用包装到函数中:

$scope.timeDifference = function(start, end) {
  return moment.utc(moment(end).diff(moment(start))).format("HH:mm");
}
然后,在你看来:

{{ timeDifference("15:40", "16:20") }}

以下是一种获得小时、分钟和秒差异的方法:

var date1 = new Date("October 13, 2014 16:00:00");
var date2 = new Date("October 13, 2014 16:10:00");
var diffMs = Math.abs(date1 - date2); // milliseconds between date1 & date2
var diffDays = Math.round(diffMs / 86400000); // days
var diffHrs = Math.round((diffMs % 86400000) / 3600000); // hours
var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
console.log(diffDays + " days, " + diffHrs + " hours, " + diffMins + " minutes");

使用此代码,您应该能够制作过滤器。

您期望的结果是什么?这根本没有意义。为什么不能在控制器中编写一个JS函数并调用它呢?
date
过滤器在输入中需要一个
date\u表达式
(日期格式可以是日期对象、毫秒(字符串或数字)或各种ISO 8601日期时间字符串格式)。“hh:mm”不是日期表达式。。。(请参阅)。这可能会帮你解决我期待的问题,它会打印40分钟
var date1 = new Date("October 13, 2014 16:00:00");
var date2 = new Date("October 13, 2014 16:10:00");
var diffMs = Math.abs(date1 - date2); // milliseconds between date1 & date2
var diffDays = Math.round(diffMs / 86400000); // days
var diffHrs = Math.round((diffMs % 86400000) / 3600000); // hours
var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
console.log(diffDays + " days, " + diffHrs + " hours, " + diffMins + " minutes");