我正在尝试整理一个聊天应用程序,我以前从未处理过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;
}
}
答案 0 :(得分:0)
正如你用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));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment-with-locales.min.js"></script>
&#13;