UNPKG

date-ago-pipe

Version:
59 lines (55 loc) 1.51 kB
import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ 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"; } } }