date-ago-pipe
Version:
date to time ago pipe angular 2
59 lines (55 loc) • 1.51 kB
text/typescript
import { Pipe, PipeTransform } from '@angular/core';
({
name: 'timeAgo'
})
export class DateToTimeAgoPipe implements PipeTransform {
transform(dateData: Date | number | string, args?: any): any {
if(typeof dateData == "string")
dateData = new Date(dateData);
let timestamp = +dateData;
let seconds = Math.floor((+new Date() - timestamp) * 0.001);
if (seconds < 10){
return "just now";
}else if (seconds < 60){
return seconds + " seconds ago";
}
else if (seconds < 3600) {
let minutes = Math.floor(seconds/60)
if(minutes > 1)
return minutes + " minutes ago";
else
return "1 minute ago";
}
// 1 day
else if (seconds < 86400) {
let hours = Math.floor(seconds/3600)
if(hours > 1)
return hours + " hours ago";
else
return "1 hour ago";
}
//31 days
else if (seconds < 2678400) {
let days = Math.floor(seconds/86400)
if(days > 1)
return days + " days ago";
else
return "1 day ago";
}
//months
else if (seconds < 31536000){
let months = Math.floor(seconds/2678400)
if(months > 1)
return months + " months ago";
else
return "1 month ago";
}//year
else{
let years = Math.floor(seconds/31536000)
if(years > 1)
return years + " years ago";
else
return "1 year ago";
}
}
}