我正在尝试创建后共享网站。我想创建日期前管道在角。
import {Pipe, PipeTransform} from 'angular2/core';
@Pipe({
name: 'messageTime',
pure: false
})
export class MessageTimePipe implements PipeTransform {
transform(value: Date, []): string {
var result: string;
// current time
let now = new Date().getTime();
// time since message was sent in seconds
let delta = (now - value.getTime()) / 1000;
// 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;
}enter code here
}
我在我的项目中尝试像上面的代码。但它不能正确工作。
2条答案
按热度按时间v09wglhw1#
首先创建管道类
让我们添加这些代码,
ef1yzkbh2#
我认为最好使用以下软件包之一来获得以前的功能,而不是创建自己的功能,原因如下:
quick implementation
/maintenance
/new features and fixes
/etc
这一个有其他没有的功能,例如i18 n,对以前文本的实时更改等。
这是一个简单的'管道只'包,因此它的重量轻,易于使用。
建议:只有当你已经在你的应用中使用moment.js时才使用这个,因为这将成为一个遗留项目,它会给你的捆绑包大小增加很多重量(见下面的评论,感谢@ymerej和@Alexandre Germain)。
这是一个新的,看起来也很不错,它得到了i18 n支持和一个选项,以改变时间前的描述以及。