22 lines
516 B
TypeScript
22 lines
516 B
TypeScript
import { Pipe, PipeTransform } from '@angular/core';
|
|
import { formatDistanceToNow, parseISO } from 'date-fns';
|
|
|
|
@Pipe({
|
|
name: 'relativeTime',
|
|
standalone: true
|
|
})
|
|
export class RelativeTimePipe implements PipeTransform {
|
|
transform(value: string | Date | null | undefined): string {
|
|
if (!value) {
|
|
return '-';
|
|
}
|
|
|
|
try {
|
|
const date = typeof value === 'string' ? parseISO(value) : value;
|
|
return formatDistanceToNow(date, { addSuffix: true });
|
|
} catch {
|
|
return '-';
|
|
}
|
|
}
|
|
}
|