如何将秒数转换为angular2中的时间字符串?
How to convert seconds to time string in angular2?
所以我一直在网上寻找这个功能,但没有找到可以将秒转换为可以表示为字符串的年、月、日、小时、分钟和秒的解决方案.
我想出了 Angular2 中管道的解决方案,但是我想获得一些关于可以做得更好以改进它的事情的反馈。
而且可能其他人需要这种管道,所以我就把它留在这里分享。
import {Pipe} from "angular2/core";
@Pipe({
name: 'secondsToTime'
})
export class secondsToTimePipe{
times = {
year: 31557600,
month: 2629746,
day: 86400,
hour: 3600,
minute: 60,
second: 1
}
transform(seconds){
let time_string: string = '';
let plural: string = '';
for(var key in this.times){
if(Math.floor(seconds / this.times[key]) > 0){
if(Math.floor(seconds / this.times[key]) >1 ){
plural = 's';
}
else{
plural = '';
}
time_string += Math.floor(seconds / this.times[key]).toString() + ' ' + key.toString() + plural + ' ';
seconds = seconds - this.times[key] * Math.floor(seconds / this.times[key]);
}
}
return time_string;
}
}
所以我一直在网上寻找这个功能,但没有找到可以将秒转换为可以表示为字符串的年、月、日、小时、分钟和秒的解决方案.
我想出了 Angular2 中管道的解决方案,但是我想获得一些关于可以做得更好以改进它的事情的反馈。
而且可能其他人需要这种管道,所以我就把它留在这里分享。
import {Pipe} from "angular2/core";
@Pipe({
name: 'secondsToTime'
})
export class secondsToTimePipe{
times = {
year: 31557600,
month: 2629746,
day: 86400,
hour: 3600,
minute: 60,
second: 1
}
transform(seconds){
let time_string: string = '';
let plural: string = '';
for(var key in this.times){
if(Math.floor(seconds / this.times[key]) > 0){
if(Math.floor(seconds / this.times[key]) >1 ){
plural = 's';
}
else{
plural = '';
}
time_string += Math.floor(seconds / this.times[key]).toString() + ' ' + key.toString() + plural + ' ';
seconds = seconds - this.times[key] * Math.floor(seconds / this.times[key]);
}
}
return time_string;
}
}