在 angular js 过滤器中格式化时间

Format time in angular js filter

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

尝试过

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

<p ng-bind="date | date:'HH:mm'"></p>

但是时间没有格式化

我应该怎么做,谢谢

参见documentation

<p ng-bind="date | date:"hh:mm"}}></p>

此外,我认为您的日期格式有误。因为

JavaScript Date instance [...] represents a single moment in time. Date objects are based on a time value that is the number of milliseconds since 1 January, 1970 UTC. (source)

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

$scope.date = new Date();

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

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

然后你可以用过滤器格式化它。

最好的解决办法是写一个过滤器

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 }}

您可以使用下面的简单示例:

$scope.date=new Date();

现在 html 我们有:

    <h2>
        {{ today| date:'hh:mm'  }}
    </h2>