【发布时间】:2015-09-08 10:24:24
【问题描述】:
如何重新格式化时间 06:31:04 以仅显示 hh:mm - 06:31
试过
$scope.date = '06:31:04';
<p ng-bind="date | date:'HH:mm'"></p>
但时间没有格式化
我该怎么做呢,谢谢
【问题讨论】:
标签: javascript angularjs date time filter
如何重新格式化时间 06:31:04 以仅显示 hh:mm - 06:31
试过
$scope.date = '06:31:04';
<p ng-bind="date | date:'HH:mm'"></p>
但时间没有格式化
我该怎么做呢,谢谢
【问题讨论】:
标签: javascript angularjs date time filter
最好的解决办法是写一个过滤器
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 }}
【讨论】:
return $filter('date')(date, 'h:mm') 我转向return $filter('date')(date, 'h:mm a')
你可以使用下面的简单例子:
$scope.date=new Date();
现在在我们拥有的 html 中:
<h2>
{{ today| date:'hh:mm' }}
</h2>
【讨论】:
请参阅documentation。
<p ng-bind="date | date:"hh:mm"}}></p>
此外,我认为您的日期格式是错误的。因为
JavaScript Date 实例 [...] 表示 时间。日期对象基于时间值,该时间值是 自 1970 年 1 月 1 日 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;
然后你可以用过滤器格式化它。
【讨论】: