Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
fix: #403 display time diff complete
  • Loading branch information
enriquezrene committed Jun 23, 2020
commit a931faf2f61923be26cb7de2ef1064dec01f8162
Original file line number Diff line number Diff line change
Expand Up @@ -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', () => {
Expand Down
13 changes: 10 additions & 3 deletions src/app/modules/shared/pipes/substract-date/substract-date.pipe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<tbody>
<tr class="d-flex" *ngFor="let entry of dataByMonth">
<td class="col">{{ entry.start_date | date: 'dd/MM/yyyy' }}</td>
<td class="col">{{ entry.start_date | date: 'shortTime' }} - {{ entry.end_date | date: 'shortTime' }}</td>
<td class="col">{{ entry.start_date | date: 'HH:mm' }} - {{ entry.end_date | date: 'HH:mm' }}</td>
<td class="col">{{ entry.end_date | substractDate: entry.start_date }}</td>
<td class="col">{{ entry.project_name }}</td>
<td class="col">{{ entry.activity_name }}</td>
Expand Down