应用具有条件的AngularJS日期过滤器

时间:2014-07-09 13:13:52

标签: angularjs timeago

我刚开始使用AngularJS并遇到问题。

我有一个日期字段显示在网格中。 日期格式应该是相对格式,如“1天前,10分钟前......” 因此我使用了timeAgo,因此它正确地格式化了日期。

但我有一个要求:

  

如果last_updated_time小于10天,则显示相对时间,例如“1天前,10分钟前......”否则不应用任何过滤器。

这是我的代码段。

<td data-title="'Last modified'" sortable="'last_updated_time'" align='center'>
    {{offer.last_updated_time | timeAgo }}
</td>

如果有人可以指导我如何继续,那将会很棒。

1 个答案:

答案 0 :(得分:6)

使用函数来获取此信息:

$scope.getTimeAgo = function(last_updated_time ){
     var today = new Date();
     var days = today.diff(last_updated_time , 'days');
     if(days > 10)
        return last_updated_time;
     else
        return moment(last_updated_time).fromNow();
 };

然后您可以使用它,如下所示:

{{getTimeAgo(offer.last_updated_time)}}

PS:我刚才使用momentjs,但如果你想使用你的过滤器,你可以将你的超时功能应用到其他地方。