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

Format time in angular js filter

本文关键字:格式化 时间 过滤器 angular js      更新时间:2023-09-26

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

尝试过

$scope.date = '06:31:04';
<p ng-bind="date | date:'HH:mm'"></p>

但时间没有格式化

我该怎么做,谢谢

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

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

请参阅文档。

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

此外,我认为你约会的形式是错误的。因为

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

示例: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;

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

u可以使用以下简单示例:

$scope.date=new Date();

现在在html中我们有:

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