import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'convertMs' }) export class ConvertMsPipe implements PipeTransform { /** * Convert milliseconds to "readable" duration e.g. 1d21h35m24s * @param timeMs time in milliseconds */ transform(timeMs: number): string { let x = timeMs / 1000; const seconds = Math.floor(x % 60); x /= 60; let minutes = 0; if (x > 1) { minutes = Math.floor(x % 60); } x /= 60; let hours = 0; if (x > 1) { hours = Math.floor(x % 24); } // TODO Enable/disable day x /= 24; const days = Math.floor(x); // Final string let ret = ''; if (days > 0) { ret += parseInt('0' + days) + 'd'; } if (hours > 0) { ret += ('0' + hours).slice(-2) + 'h'; } if (minutes > 0) { ret += ('0' + minutes).slice(-2) + 'm'; } if (seconds > 0) { ret += ('0' + seconds).slice(-2) + 's'; } return ret; // return ('0' + days).slice(-2) + ':' + ('0' + hours).slice(-2) + ':' + ('0' + minutes).slice(-2) + ':' + ('0' + seconds).slice(-2); } }