簡體   English   中英

Moment JS Angular 2-24小時后僅顯示正常日期

[英]Moment JS Angular 2 - after 24 hours just show normal date

我正在嘗試將聊天應用程序放在一起,而我之前從未處理過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標記的一樣,這就是使用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)); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment-with-locales.min.js"></script> 

也看一下當下的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM