0

我刚开始使用 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>

如果有人可以指导我如何进行,那就太好了。

4

1 回答 1

4

使用一个函数来得到这个:

$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,但如果你想使用过滤器,你可以将你的时间之前的功能应用到else中。

于 2014-07-09T14:42:54.570 回答