使用条件应用AngularJS日期过滤器

使用条件应用AngularJS日期过滤器,angularjs,timeago,Angularjs,Timeago,我刚从AngularJS开始,遇到了一个问题 我有一个日期字段要显示在网格中。 日期格式应为相对格式,如“1天前,10分钟前……” 因此,我使用了timeAgo,因此它正确地格式化了日期 但我有一个要求,比如: 如果上次更新的时间小于10天,则显示相对时间,如“1天前,10分钟前…”,否则不应用任何过滤器 这是我的代码片段 <td data-title="'Last modified'" sortable="'last_updated_time'" align='center'>

我刚从AngularJS开始,遇到了一个问题

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

但我有一个要求,比如:

如果上次更新的时间小于10天,则显示相对时间,如“1天前,10分钟前…”,否则不应用任何过滤器

这是我的代码片段

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

{{offer.last_updated_time|timeAgo}

如果有人能指导我如何继续,那就太好了。

使用一个函数来获得以下信息:

$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:我使用的是time ago,但是如果您想使用过滤器,可以将time ago函数应用到else中。

使用函数可以获得以下结果:

$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:我使用的是time ago,但是如果您想使用过滤器,您可以将time ago函数应用到else中。

您好,nramirez,很抱歉延迟回复。。。非常感谢你的回答。。。我的要求略有改变,所以采取了另一种方法来解决。。。谢谢你的时间。嗨,拉米雷斯,我为延迟回复道歉。。。非常感谢你的回答。。。我的要求略有改变,所以采取了另一种方法来解决。。。谢谢你抽出时间。