我在我的项目中使用 moment js 进行日期转换,框架为 angular Js 2。这里使用amTimeAgo 管道将时间戳转换为日期,它可以正常工作(例如,10 秒前、1 天前和 5 天自我等。 ..)。在这里我的要求是,如果当前日期大于帖子的 3 天,我需要显示日期,例如(7-04-2017)而不是(4 天前)。做这个的最好方式是什么?
<span>{{ideaListObj.cDate | amTimeAgo:true }} </span>
我在我的项目中使用 moment js 进行日期转换,框架为 angular Js 2。这里使用amTimeAgo 管道将时间戳转换为日期,它可以正常工作(例如,10 秒前、1 天前和 5 天自我等。 ..)。在这里我的要求是,如果当前日期大于帖子的 3 天,我需要显示日期,例如(7-04-2017)而不是(4 天前)。做这个的最好方式是什么?
<span>{{ideaListObj.cDate | amTimeAgo:true }} </span>
ng2 moment 使用 momentjs 来显示相对时间,因此您可以amTimeAgo
使用relativeTime
.
在您的情况下,您可以在配置阶段使用以下代码:
moment.updateLocale('en', {
relativeTime : {
future: function (number, withoutSuffix, key, isFuture){
if( moment(number, 'D-MM-YYYY', true).isValid() ){
return number;
}
return "in " + number;
},
past: function (number, withoutSuffix, key, isFuture){
if( moment(number, 'D-MM-YYYY', true).isValid() ){
return number;
}
return number + " ago";
},
dd: function (number, withoutSuffix, key, isFuture){
if( number >= 3 ){
return moment().subtract(number, 'd').format('D-MM-YYYY');
}
return "%d days";
}
}
});