Total Complexity | 2 |
Total Lines | 29 |
Duplicated Lines | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
12 | trait DateTrait |
||
13 | { |
||
14 | /** |
||
15 | * The ·lexical space· of date consists of finite-length sequences of characters of the form: |
||
16 | * '-'? yyyy '-' mm '-' dd zzzzzz? |
||
17 | * |
||
18 | * where the date and optional timezone are represented exactly the same way as they are for dateTime. |
||
19 | * The first moment of the interval is that represented by: |
||
20 | * '-' yyyy '-' mm '-' dd 'T00:00:00' zzzzzz? |
||
21 | * |
||
22 | * and the least upper bound of the interval is the timeline point represented (noncanonically) by: |
||
23 | * '-' yyyy '-' mm '-' dd 'T24:00:00' zzzzzz?. |
||
24 | * |
||
25 | * @var string |
||
26 | */ |
||
27 | private static string $date_regex = '/^-?([1-9][0-9]*|[0-9]{4})-(((0(1|3|5|7|8)|1(0|2))-(0[1-9]|(1|2)[0-9]|3[0-1]))|((0(4|6|9)|11)-(0[1-9]|(1|2)[0-9]|30))|(02-(0[1-9]|(1|2)[0-9])))((\+|-)([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9])|Z)?$/Di'; |
||
28 | |||
29 | |||
30 | /** |
||
31 | * @param string $value |
||
32 | * @param string $message |
||
33 | */ |
||
34 | protected static function validDate(string $value, string $message = ''): void |
||
44 |