| 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 |