1

我在我的项目中使用 moment js 进行日期转换,框架为 angular Js 2。这里使用amTimeAgo 管道将时间戳转换为日期,它可以正常工作(例如,10 秒前、1 天前和 5 天自我等。 ..)。在这里我的要求是,如果当前日期大于帖子的 3 天,我需要显示日期,例如(7-04-2017)而不是(4 天前)。做这个的最好方式是什么?

<span>{{ideaListObj.cDate | amTimeAgo:true }} </span>
4

1 回答 1

0

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";
    }
  }
});
于 2017-04-11T15:29:56.043 回答