DateFormatter::resolve_pattern()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
namespace ICanBoogie\CLDR\Dates;
4
5
/**
6
 * Date formatter.
7
 *
8
 * <pre>
9
 * <?php
10
 *
11
 * namespace ICanBoogie\CLDR;
12
 *
13
 * $datetime = '2013-11-05 21:22:23';
14
 *
15
 * $formatter = new DateFormatter($repository->locales['en']);
16
 *
17
 * echo $formatter($datetime, 'full');   // Tuesday, November 5, 2013
18
 * echo $formatter($datetime, 'long');   // November 5, 2013
19
 * echo $formatter($datetime, 'medium'); // Nov 5, 2013
20
 * echo $formatter($datetime, 'short');  // 11/5/13
21
 *
22
 * $formatter = new DateFormatter($repository->locales['fr']);
23
 *
24
 * echo $formatter($datetime, 'full');   // mardi 5 novembre 2013
25
 * echo $formatter($datetime, 'long');   // 5 novembre 2013
26
 * echo $formatter($datetime, 'medium'); // 5 nov. 2013
27
 * echo $formatter($datetime, 'short');  // 05/11/2013
28
 * </pre>
29
 */
30
final class DateFormatter extends DateTimeFormatter
31
{
32
    /**
33
     * Resolves length defined in `dateFormats` into a pattern.
34
     */
35
    protected function resolve_pattern(
36
        string|DateTimeFormatLength|DateTimeFormatId $pattern_or_length_or_id
37
    ): string {
38
        if ($pattern_or_length_or_id instanceof DateTimeFormatLength) {
39
            return $this->calendar['dateFormats'][$pattern_or_length_or_id->value];
40
        }
41
42
        return parent::resolve_pattern($pattern_or_length_or_id);
43
    }
44
}
45