Conditions | 8 |
Paths | 21 |
Total Lines | 33 |
Code Lines | 25 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | <?php |
||
27 | public static function spellInterval(DateInterval $interval, $options = 0) |
||
28 | { |
||
29 | $parts = []; |
||
30 | foreach ([ |
||
31 | 'y' => self::YEAR, |
||
32 | 'm' => self::MONTH, |
||
33 | 'd' => self::DAY, |
||
34 | 'h' => self::HOUR, |
||
35 | 'i' => self::MINUTE, |
||
36 | 's' => self::SECOND |
||
37 | ] as $interval_field => $unit) { |
||
38 | if ($interval->{$interval_field} > 0) |
||
39 | $parts[] = static::spellUnit($interval->{$interval_field}, $unit); |
||
40 | } |
||
41 | |||
42 | if (empty($parts)) |
||
43 | return static::JUST_NOW; |
||
44 | |||
45 | if ($options & self::SEPARATE && count($parts) > 1) { |
||
46 | $last_part = array_pop($parts); |
||
47 | $spelled = implode(', ', $parts).' '.static::AND.' '.$last_part; |
||
48 | } else |
||
49 | $spelled = implode(' ', $parts); |
||
50 | |||
51 | if ($options & self::DIRECTION) { |
||
52 | if ($interval->invert) |
||
53 | $spelled = static::IN.' '.$spelled; |
||
54 | else |
||
55 | $spelled .= ' '.static::AGO; |
||
56 | } |
||
57 | |||
58 | return $spelled; |
||
59 | } |
||
60 | } |
||
61 |