[英]How to get amCalendar filter in 24hours format (Angular-Moment.js)
[英]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.