Hello Friends, In this article, we will learn how to add days ago in angular using a custom Pipe. In the UI part(front-end), we need to display like some seconds ago, days ago, weeks ago, months ago, years ago, etc. So let’s start,
First, we need to create a pipe namely “daysAgo” to date convert into days ago text.
ng generate pipe daysAgo
Now put the below code in the “daysAgo” pipe
import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'daysAgo', pure: true }) export class DaysAgo implements PipeTransform { transform(time: any, args?: any): any { if (time) { switch (typeof time) { case 'number': break; case 'string': time = +new Date(time); break; case 'object': if (time.constructor === Date) time = time.getTime(); break; default: time = +new Date(); } var time_formats = [ [60, 'seconds', 1], // 60 [120, '1 minute ago', '1 minute ago], // 60*2 [3600, 'minutes', 60], // 60*60, 60 [7200, '1 hour ago', '1 hour ago'], // 60*60*2 [86400, 'hours', 3600], // 60*60*24, 60*60 [172800, 'Yesterday', 'Tomorrow'], // 60*60*24*2 [604800, 'days', 86400], // 60*60*24*7, 60*60*24 [1209600, 'Last week', 'Next week'], // 60*60*24*7*4*2 [2419200, 'weeks', 604800], // 60*60*24*7*4, 60*60*24*7 [4838400, 'Last month', 'Next month'], // 60*60*24*7*4*2 [29030400, 'months', 2419200], // 60*60*24*7*4*12, 60*60*24*7*4 [58060800, 'Last year', 'Next year'], // 60*60*24*7*4*12*2 [2903040000, 'years', 29030400], // 60*60*24*7*4*12*100, 60*60*24*7*4*12 ]; var seconds = (+new Date() - time) / 1000, token = 'ago', list_choice = 1; if (seconds == 0) { return 'Just now' } if (seconds < 0) { seconds = Math.abs(seconds); token = 'from now'; list_choice = 2; } var i = 0, format; while (format = time_formats[i++]) if (seconds < format[0]) { if (typeof format[2] == 'string') return format[list_choice]; else return Math.floor(seconds / format[2]) + ' ' + format[1] + ' ' + token; } return time; } } }
So by this pipe, we will be able to Convert DateTime to days ago text easily.
Now we are use pipe in our components like below
<span>{{createdDate| daysAgo}}</span>
Note: `createdDate` must be DateTime format
Now run the application and the output looks like below
I hope this article helps you and you will like it.
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular