diff --git a/src/app/modules/shared/pipes/substract-date/substract-date.pipe.spec.ts b/src/app/modules/shared/pipes/substract-date/substract-date.pipe.spec.ts index c496a18d2..a9ec16b14 100644 --- a/src/app/modules/shared/pipes/substract-date/substract-date.pipe.spec.ts +++ b/src/app/modules/shared/pipes/substract-date/substract-date.pipe.spec.ts @@ -6,13 +6,22 @@ describe('SubstractDatePipe', () => { expect(pipe).toBeTruthy(); }); - it('returns the date diff', () => { + it('returns the date diff using hh:mm', () => { const fromDate = new Date('2011-04-11T10:20:40Z'); const substractDate = new Date('2011-04-11T08:00:30Z'); const diff = new SubstractDatePipe().transform(fromDate, substractDate); - expect(diff).toBe('02:20:10'); + expect(diff).toBe('02:20'); + }); + + it('returns the date diff including seconds if difference is less than a minute', () => { + const fromDate = new Date('2011-04-11T10:20:40Z'); + const substractDate = new Date('2011-04-11T10:20:30Z'); + + const diff = new SubstractDatePipe().transform(fromDate, substractDate); + + expect(diff).toBe('00:00:10'); }); it('returns --:-- if fromDate is null', () => { diff --git a/src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts b/src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts index 4cd0f3017..8791d3741 100644 --- a/src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts +++ b/src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts @@ -13,9 +13,16 @@ export class SubstractDatePipe implements PipeTransform { } const startDate = moment(substractDate, 'YYYY-MM-DD HH:mm:ss'); - const endDate = moment(fromDate, 'YYYY-MM-DD HH:mm:ss'); - const duration: any = moment.duration(endDate.diff(startDate)); - return `${this.formatTime(duration._data.hours)}:${this.formatTime(duration._data.minutes)}:${this.formatTime(duration._data.seconds)}`; + let endDate = moment(fromDate, 'YYYY-MM-DD HH:mm:ss'); + let duration: moment.Duration = moment.duration(endDate.diff(startDate)); + + if (duration.asSeconds() > 60) { + endDate = endDate.add(1, 'minute').startOf('minute'); + duration = moment.duration(endDate.diff(startDate)); + return `${ this.formatTime(duration.hours())}:${this.formatTime(duration.minutes()) }`; + } else { + return `${ this.formatTime(duration.hours())}:${this.formatTime(duration.minutes())}:${this.formatTime(duration.seconds())}`; + } } formatTime(time: number): string { diff --git a/src/app/modules/time-entries/pages/time-entries.component.html b/src/app/modules/time-entries/pages/time-entries.component.html index 2750771f1..7bca76ba4 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.html +++ b/src/app/modules/time-entries/pages/time-entries.component.html @@ -30,7 +30,7 @@ {{ entry.start_date | date: 'dd/MM/yyyy' }} - {{ entry.start_date | date: 'shortTime' }} - {{ entry.end_date | date: 'shortTime' }} + {{ entry.start_date | date: 'HH:mm' }} - {{ entry.end_date | date: 'HH:mm' }} {{ entry.end_date | substractDate: entry.start_date }} {{ entry.project_name }} {{ entry.activity_name }}