| Conditions | 6 |
| Paths | 6 |
| Total Lines | 31 |
| Code Lines | 22 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 12 | public function convert( |
||
| 13 | \DateTimeInterface $datetime, |
||
| 14 | string $interval = null |
||
| 15 | ): \DateTimeImmutable |
||
| 16 | { |
||
| 17 | $datetime = $this->immutable($datetime); |
||
| 18 | |||
| 19 | switch ($interval) { |
||
| 20 | case 'day': |
||
| 21 | return $datetime->setTime(0, 0, 0); |
||
| 22 | |||
| 23 | case 'week': |
||
| 24 | $weekSub = $datetime->format('w') ? $datetime->format('w') - 1 : 6; |
||
| 25 | |||
| 26 | return $datetime |
||
| 27 | ->sub(new \DateInterval('P' . $weekSub . 'D')) |
||
| 28 | ->setTime(0, 0, 0); |
||
| 29 | |||
| 30 | case 'month': |
||
| 31 | return $datetime |
||
| 32 | ->setDate($datetime->format('Y'), $datetime->format('m'), 1) |
||
| 33 | ->setTime(0, 0, 0); |
||
| 34 | |||
| 35 | case 'year': |
||
| 36 | return $datetime |
||
| 37 | ->setDate($datetime->format('Y'), 1, 1) |
||
| 38 | ->setTime(0, 0, 0); |
||
| 39 | } |
||
| 40 | |||
| 41 | return $datetime; |
||
| 42 | } |
||
| 43 | |||
| 56 | } |