import { Pipe, PipeTransform } from '@angular/core'; import moment from 'moment'; // enums import { eDateTimeFormats } from '../enums'; @Pipe({ standalone: true, name: 'dateFromStringPipe', }) export class DateFromStringPipe implements PipeTransform { transform( date: string | Date | null | undefined, template?: eDateTimeFormats | string ): any { switch (template) { case eDateTimeFormats.SHORT_FORMAT: return moment(date).format('MM/YY'); case eDateTimeFormats.MONTH_FORMAT: return moment(date, 'YYYY-MM-DDTHH:mm:ss.SSS[Z]').format( 'MMMM DD, YYYY | hh:mm A' ); case eDateTimeFormats.DIFFERENCE_DAYS: { const a = moment(); const b = moment(date); const diff = a.diff(b, 'days'); return diff < 1 ? 'Today' : `${diff} ${diff === 1 ? 'day' : 'days'}`; } case eDateTimeFormats.DATE_TIME: return moment(date).format('MM/DD/YY hh:mm A'); case eDateTimeFormats.TIME: return moment(date).format('hh:mm A'); case eDateTimeFormats.TIME_AGO: return moment(date, 'YYYYMMDD').fromNow(); default: return moment(date).format('MM/DD/YY'); } } }