【问题标题】:Moment JS Angular 2 - after 24 hours just show normal dateMoment JS Angular 2 - 24小时后仅显示正常日期
【发布时间】:2016-11-15 22:14:43
【问题描述】:

我正在尝试构建一个聊天应用程序,但我之前从未处理过 momentjs。基本上我希望它显示评论是在几秒钟前、几分钟前、几小时前发布的……但我需要它只显示日期而不是 1 天前、2 天前等……

我正在使用 angular2 来构建应用程序(对它来说也是相当新的)并且处理 javascript 日期对象有点棘手.. 以前有人做过吗?更不用说Angular2了..我已经尝试了以下但有些问题..没有错误但它只是没有正确计算它

@Pipe({
  name: 'formatDate2'
})
export class DatePipe2 implements PipeTransform {
  transform(value: any, args?: any): any {

            let result:string;
            // current time
            let now = new Date().getTime();

            // time since message was sent in seconds
            let delta = ( now - value ) / 1000;
            console.log(delta);
            // format string
            if (delta < 10) {
                result = 'jetzt';
            } else if (delta < 60) { // sent in last minute
                result = 'vor ' + Math.floor(delta) + ' Sekunden';
            } else if (delta < 3600)
            { // sent in last hour
                result = 'vor ' + Math.floor(delta / 60) + ' Minuten';
            } else if (delta < 86400) { // sent on last day
                result = 'vor ' + Math.floor(delta / 3600) + ' Stunden';
            } else { // sent more than one day ago
                result = 'vor ' + Math.floor(delta / 86400) + ' Tagen';
            }
            return result;

  }
}

【问题讨论】:

  • momentjs 和您的问题之间的确切关系是什么?从来没用过……

标签: javascript angularjs angular momentjs


【解决方案1】:

当您使用 momentjs 标记此内容时,以下是您将如何使用 momentjs 执行您所追求的事情。您可以包含一个本地化版本的 momentjs 来显示德语消息。

var tenSecAgo = moment().subtract(10, "seconds");
var twoDayAgo = moment().subtract(2, "days");

function showSinceOrDate(date) {
  var now = moment();
  if (moment.duration(now.diff(date)).asHours() > 24) {
    return date.format("DD.MM.YYYY HH:mm");
  } else {
    return date.fromNow();
  }
}


console.log(showSinceOrDate(tenSecAgo));
console.log(showSinceOrDate(twoDayAgo));
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment-with-locales.min.js"&gt;&lt;/script&gt;

Also have a look at moment's documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2016-05-19
    • 2017-08-10
    • 2014-05-01
    相关资源
    最近更新 更多