Fix another edge case in time splitter
This commit is contained in:
		| @@ -507,7 +507,7 @@ final class NodaTimeSplitter { | ||||
|         if (strlen($datum) <= 9) return []; | ||||
|  | ||||
|         // The year is only parse-able if it is a four digit year at the start | ||||
|         if (self::is_numeric((string)\substr($datum, 0, 4))) { | ||||
|         if (self::is_numeric((string)\substr($datum, 0, 4)) && substr($datum, 4, 1) === '.') { | ||||
|             $year = \substr($datum, 0, 4); | ||||
|         } | ||||
|  | ||||
| @@ -1114,11 +1114,21 @@ final class NodaTimeSplitter { | ||||
|     public static function attempt_splitting(string $datum):array { | ||||
|  | ||||
|         $moda = NodaTimeSplitter::is_timespan($datum); | ||||
|         if (!$moda) $moda = NodaTimeSplitter::is_incomplete_date($datum); | ||||
|         if (!$moda) $moda = NodaTimeSplitter::is_valid_date($datum); | ||||
|         if (!$moda) $moda = NodaTimeSplitter::is_valid_date_hungarian($datum); | ||||
|         if (!$moda) $moda = NodaTimeSplitter::is_century($datum); | ||||
|         if (!$moda) $moda = NodaTimeSplitter::is_decade($datum); | ||||
|         if (!$moda) { | ||||
|             $moda = NodaTimeSplitter::is_incomplete_date($datum); | ||||
|         } | ||||
|         if (!$moda) { | ||||
|             $moda = NodaTimeSplitter::is_valid_date($datum); | ||||
|         } | ||||
|         if (!$moda) { | ||||
|             $moda = NodaTimeSplitter::is_valid_date_hungarian($datum); | ||||
|         } | ||||
|         if (!$moda) { | ||||
|             $moda = NodaTimeSplitter::is_century($datum); | ||||
|         } | ||||
|         if (!$moda) { | ||||
|             $moda = NodaTimeSplitter::is_decade($datum); | ||||
|         } | ||||
|  | ||||
|         if (!empty($moda)) { | ||||
|             if ((int)$moda[2] > 12 || (int)$moda[3] > 31) { | ||||
|   | ||||
| @@ -699,6 +699,8 @@ final class NodaTimeSplitterTest extends TestCase { | ||||
|  | ||||
|         $output = NodaTimeSplitter::attempt_splitting("65497028c51eb"); | ||||
|         self::assertEquals($output, []); | ||||
|         $output = NodaTimeSplitter::attempt_splitting("6552cf08b0196 test tag"); | ||||
|         self::assertEquals($output, []); | ||||
|  | ||||
|         # $output = NodaTimeSplitter::attempt_splitting("Nach 1944-1964"); | ||||
|         # self::assertEquals($output, []); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user