我使用 angular 'date' 过滤器在 angular js 中创建了一个持续时间计时器。出于某种原因,小时部分以“2”而不是“0”开头。
我正在使用这样的过滤器
{{runningDuration | date:'HH:mm:ss'}}
http://jsfiddle.net/rpg2kill/vNdpu/
我究竟做错了什么?
我使用 angular 'date' 过滤器在 angular js 中创建了一个持续时间计时器。出于某种原因,小时部分以“2”而不是“0”开头。
我正在使用这样的过滤器
{{runningDuration | date:'HH:mm:ss'}}
http://jsfiddle.net/rpg2kill/vNdpu/
我究竟做错了什么?
这是因为您想格式化日期,但将日期之间的差异作为整数传递给它。然后 Angular 假设你想要new Date(runningDuration)
.
您可以使用过滤器将日期转换为 utc(这可能需要更多的极端情况处理,而不仅仅是数字和日期)。演示
JS
myApp.filter('utc', [function() {
return function(date) {
if(angular.isNumber(date)) {
date = new Date(date);
}
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}
} ]);
HTML
{{runningDuration | utc | date:'HH:mm:ss'}}