我使用下面的代码打印持续时间:
{{(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}}
答案 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组件 按持续时间格式化。