以角度js过滤器格式化时间

Ale*_*FF1 5 javascript time date filter angularjs

如何重新格式化时间06:31:04以仅显示hh:mm - 06:31

试过

$scope.date = '06:31:04';

<p ng-bind="date | date:'HH:mm'"></p>
Run Code Online (Sandbox Code Playgroud)

但时间不格式化

我应该怎么做,谢谢

Ale*_*FF1 8

最好的解决方案是编写一个过滤器

angular.module('foo', [])
.filter('formatTime', function ($filter) {
return function (time, format) {
    var parts = time.split(':');
    var date = new Date(0, 0, 0, parts[0], parts[1], parts[2]);
    return $filter('date')(date, format || 'h:mm');
};
});




{{ '06:31:04' | formatTime }}
Run Code Online (Sandbox Code Playgroud)


sch*_*her 6

请参阅文档.

<p ng-bind="date | date:"hh:mm"}}></p>
Run Code Online (Sandbox Code Playgroud)

此外,我认为你的日期格式是错误的.因为

JavaScript Date实例[...]表示单个时刻.日期对象基于时间值,该时间值是自1970年1月1日UTC以来的毫秒数.(来源)

示例:1288323623006.因此,您的格式无法识别过滤器.尝试:

$scope.date = new Date();
Run Code Online (Sandbox Code Playgroud)

如果要将给定格式的字符串转换为日期,请尝试:

var dateElements = "06:31:04".split(':');
var date = new Date();
date.setHours(time[0]);
date.setMinutes(time[1]);
$scope.date = date;
Run Code Online (Sandbox Code Playgroud)

然后您可以使用过滤器对其进行格式化.