import { Pipe, PipeTransform } from '@angular/core'; import moment from 'moment'; @Pipe({ standalone: true, name: 'timeFormat', }) export class TimeFormatPipe implements PipeTransform { transform(expireDate: Date | string): string { if (!expireDate) { return 'Invalid date'; } const expireMoment = moment(expireDate).utc(); if (!expireMoment.isValid()) { return 'Invalid date'; } const now = moment().utc(); const daysUntilExpiration = expireMoment.diff(now, 'days'); const hoursUntilExpiration = expireMoment.diff(now, 'hours'); if (daysUntilExpiration > 1) { return `${daysUntilExpiration} day${daysUntilExpiration === 1 ? '' : 's'} ${daysUntilExpiration < 0 ? 'ago' : 'to go'}`; } else if (daysUntilExpiration < 1) { return `${Math.abs(hoursUntilExpiration)} hour${Math.abs(hoursUntilExpiration) === 1 ? '' : 's'} ${hoursUntilExpiration < 0 ? 'ago' : 'to go'}`; } else { return '1 day to go'; } } }