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

时间:2022-06-18 21:31:27

I just started with AngularJS and got stuck with a problem.

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

I have a date field to show in a grid. Date format should be relative format like "1 day ago, 10 mins ago...." So for that i used timeAgo, so it formats the date correctly.

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

But I have a requirement like:

但我有一个要求:

If the last_updated_time is less than 10 days, then show relative time like "1 day ago, 10 mins ago...." else do not apply any filter.

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

Here is my code snippet.

这是我的代码片段。

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

It would be great if someone can guide me how to proceed.

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

1 个解决方案

#1


6  

Use a function to get this:

使用函数来获取:

$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();
 };

then you can use it like follow:

那么你可以像下面这样使用它:

{{getTimeAgo(offer.last_updated_time)}}

PS: I'm using momentjs for time ago but you can apply your time ago function into the else if you want to use your filter.

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

#1


6  

Use a function to get this:

使用函数来获取:

$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();
 };

then you can use it like follow:

那么你可以像下面这样使用它:

{{getTimeAgo(offer.last_updated_time)}}

PS: I'm using momentjs for time ago but you can apply your time ago function into the else if you want to use your filter.

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