AngularJS:如何用格式打印持续时间?

时间:2014-01-29 05:36:22

标签: javascript angularjs

我使用下面的代码打印持续时间:

{{(endTime - startTime) * 1000 | date: 'H:mm:ss'}}

但是我得到了GMT +8的时间

AngularJS有办法打印出非转换版, 或者我需要用这种方式来做到这一点?

{{(endTime - startTime) % (60 * 60 * 24) / (60 * 60) | number: 0}}:
{{(endTime - startTime) % (60 * 60) / 60 | number: 0}}:
{{(endTime - startTime) % 60 | number: 0}}

4 个答案:

答案 0 :(得分:22)

在AngularJS 1.3及更高版本中, date 过滤器中有可选的 时区 参数。文档说如果未指定时区,将使用浏览器的时区。

https://code.angularjs.org/1.3.0/docs/api/ng/filter/date

添加' UTC'时区将打印持续时间。

{{(endTime - startTime) | date: 'H:mm:ss': 'UTC'}}

答案 1 :(得分:3)

最好的方法是使用moment.js库。其中有许多功能可用于改进应用程序。

答案 2 :(得分:2)

date过滤器格式化Unix timestamp(以毫秒为单位),因此它不适用于持续时间。

您必须像您建议的那样进行手动格式化。

答案 3 :(得分:1)

您可以使用this bower组件 按持续时间格式化。