角度JS过滤日期
angularJS filter date
我正在尝试使用过滤器来过滤掉字符串的日期。我从 API 获得的日期是
"/Date(1418716652000+0000)/"
我有一个函数可以将日期转换为我想要的类型:
1418716652000
函数为:
$scope.convertDate = function(published_first) {
var date = (published_first.match(/'(.*')/, ''));
var convertedDate = date[0];
date = eval(convertedDate.replace(/'//g,''));
return date;
}
我的HTML是:
<div id ="news" ng-repeat="new in news | filter:convertDate">
<h3 class="title" ng-repeat="n in new">
<span>{{n.title}}</span><br/>
<div class="title-data">
<span ng-if="n.byline.length > 0">by: {{n.byline}}</span>
<br/>
<span>
<span>published: {{n.published_first | date:'medium'}}</span><br/>
</span>
</div>
我一直在尝试将其作为 ng-repeatdiv 中的 HTML 中的过滤器运行,但它不起作用。我还尝试在同一跨度中运行过滤器,其中包括角度日期:"中等"过滤器。那也行不通。有人可以帮助解决我所缺少的问题吗?
您正在使用的 API 似乎为您提供了具有 published_first 属性的新闻对象,该属性采用您希望以不同的方式呈现的传输格式,但该数据在收到后不会在运行时更改。
在任何类型的手表中将标记转换为过滤器或函数意味着您不断转换触发摘要的每个事件的日期。最好从接收新闻项的控制器或服务运行 convertDate(( 函数,并在从 API 接收每个项时对每个项进行转换。在这种情况下,每个新闻项仅执行一次从字符串到日期的转换,然后您的标记变为:
<span>published: {{n.published_first | date:'medium'}}</span>
此外,如果您可以确保来自 API 的格式始终保持一致(它应该一致(,则可以使用以下一行将转换为时间戳:
$scope.convertDate = function(published_first) {
return parseInt(published_first.substr(6), 10);
}
该行删除 /Date(( 的初始非数字字符,并根据精度解析为第一个非数字字符,该字符将是 + 或 (。
1( 创建一个如下所示的过滤器函数。
module.filter('convertDate', function() {
return function(published_first) {
var date = (published_first.match(/'(.*')/, ''));
var convertedDate = date[0];
date = eval(convertedDate.replace(/'//g,''));
return date;
};
})
2( 使用过滤器设置日期格式:
<div id ="news" ng-repeat="new in news">
<h3 class="title" ng-repeat="n in new">
<span>{{n.title}}</span><br/>
<div class="title-data">
<span ng-if="n.byline.length > 0">by: {{n.byline}}</span>
<br/>
<span>
<span>published: {{n.published_first | convertDate | date:'medium'}}</span><br/>
</span>
</div>
尽可能避免使用过滤器。 过滤器在大型应用中可能会导致巨大的性能问题。
也就是说,由于您将函数放在作用域上,因此可以在标记中使用它:
<span>published: {{convertDate(n.published_first) | date:'medium'}}</span><br/>
相关文章:
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 如何从Wijmo过滤flexgrid中的日期
- 过滤日期范围 angularjs 时出错
- AngularJS过滤格式化的日期
- 在JavaScript中,按日期和之后的名称过滤数组
- 如何在 Angular js 中按日期过滤数据
- JavaScript 智能日期过滤
- 按输入日期过滤 ng 重复
- 拉拉维尔角度如何过滤碳串上的日期
- Dojo 网格:将过滤条件发送到服务器,具有有效日期
- 如何使用角度js按月和年正确过滤日期
- 酒窝.js使用日期范围过滤 X 轴
- 角度JS过滤日期
- ng 表过滤毫秒日期数据
- angular - 过滤开始日期和结束日期在所选月份和年份范围内的所有对象
- 如何在角度js中使用日期过滤数据
- 为morris图表添加了日期过滤组件
- 如何使用动态日期过滤oData调用
- JavaScript | AngularJS:根据日期过滤结果过滤项目
- 如何使用JSON格式的日期过滤数据