Skip to content

Commit a931faf

Browse files
committed
fix: #403 display time diff complete
1 parent 9b1de3f commit a931faf

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

src/app/modules/shared/pipes/substract-date/substract-date.pipe.spec.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,22 @@ describe('SubstractDatePipe', () => {
66
expect(pipe).toBeTruthy();
77
});
88

9-
it('returns the date diff', () => {
9+
it('returns the date diff using hh:mm', () => {
1010
const fromDate = new Date('2011-04-11T10:20:40Z');
1111
const substractDate = new Date('2011-04-11T08:00:30Z');
1212

1313
const diff = new SubstractDatePipe().transform(fromDate, substractDate);
1414

15-
expect(diff).toBe('02:20:10');
15+
expect(diff).toBe('02:20');
16+
});
17+
18+
it('returns the date diff including seconds if difference is less than a minute', () => {
19+
const fromDate = new Date('2011-04-11T10:20:40Z');
20+
const substractDate = new Date('2011-04-11T10:20:30Z');
21+
22+
const diff = new SubstractDatePipe().transform(fromDate, substractDate);
23+
24+
expect(diff).toBe('00:00:10');
1625
});
1726

1827
it('returns --:-- if fromDate is null', () => {

src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,16 @@ export class SubstractDatePipe implements PipeTransform {
1313
}
1414

1515
const startDate = moment(substractDate, 'YYYY-MM-DD HH:mm:ss');
16-
const endDate = moment(fromDate, 'YYYY-MM-DD HH:mm:ss');
17-
const duration: any = moment.duration(endDate.diff(startDate));
18-
return `${this.formatTime(duration._data.hours)}:${this.formatTime(duration._data.minutes)}:${this.formatTime(duration._data.seconds)}`;
16+
let endDate = moment(fromDate, 'YYYY-MM-DD HH:mm:ss');
17+
let duration: moment.Duration = moment.duration(endDate.diff(startDate));
18+
19+
if (duration.asSeconds() > 60) {
20+
endDate = endDate.add(1, 'minute').startOf('minute');
21+
duration = moment.duration(endDate.diff(startDate));
22+
return `${ this.formatTime(duration.hours())}:${this.formatTime(duration.minutes()) }`;
23+
} else {
24+
return `${ this.formatTime(duration.hours())}:${this.formatTime(duration.minutes())}:${this.formatTime(duration.seconds())}`;
25+
}
1926
}
2027

2128
formatTime(time: number): string {

src/app/modules/time-entries/pages/time-entries.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<tbody>
3131
<tr class="d-flex" *ngFor="let entry of dataByMonth">
3232
<td class="col">{{ entry.start_date | date: 'dd/MM/yyyy' }}</td>
33-
<td class="col">{{ entry.start_date | date: 'shortTime' }} - {{ entry.end_date | date: 'shortTime' }}</td>
33+
<td class="col">{{ entry.start_date | date: 'HH:mm' }} - {{ entry.end_date | date: 'HH:mm' }}</td>
3434
<td class="col">{{ entry.end_date | substractDate: entry.start_date }}</td>
3535
<td class="col">{{ entry.project_name }}</td>
3636
<td class="col">{{ entry.activity_name }}</td>

0 commit comments

Comments
 (0)