Total Complexity | 4 |
Total Lines | 27 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
15 | class Countdown extends AbstractOperation implements CountdownInterface |
||
16 | { |
||
17 | 7 | public function execute($dateFrom = 'now', $dateTo, string $format = '%s%02d:%02d:%02d'): string |
|
18 | { |
||
19 | 7 | $dateFrom = $this->createDateObject($dateFrom); |
|
20 | 7 | $dateTo = $this->createDateObject($dateTo); |
|
21 | |||
22 | 7 | $dateDifference = $dateFrom->diff($dateTo); |
|
23 | |||
24 | 7 | $dateFromHigherThanDateTo = $dateFrom > $dateTo; |
|
25 | |||
26 | 7 | $hours = $dateDifference->h; |
|
27 | 7 | $minutes = $dateDifference->i; |
|
28 | 7 | $seconds = $dateDifference->s; |
|
29 | |||
30 | 7 | $hours += $this->calculateDaysInHours($dateDifference->days); |
|
31 | |||
32 | 7 | return \sprintf($format, $dateFromHigherThanDateTo ? '-' : '', $hours, $minutes, $seconds); |
|
33 | } |
||
34 | |||
35 | 7 | private function calculateDaysInHours(int $days): int |
|
42 | } |
||
43 | } |
||
44 |