Allow splitting times after <year><month>
This commit is contained in:
@ -190,7 +190,7 @@ final class NodaTimeSplitter {
|
||||
public static function timePartsToTimeName(array $moda):string {
|
||||
|
||||
if (!empty($moda[5]) and $moda[5] === "Nach" and $moda[1] === "?") {
|
||||
$moda[0] = strval(intval($moda[0]) - 1);
|
||||
if (empty(trim($moda[2], "0 "))) $moda[0] = strval(intval($moda[0]) - 1);
|
||||
$moda[1] = $moda[0];
|
||||
$prefix = "Nach ";
|
||||
}
|
||||
@ -250,7 +250,7 @@ final class NodaTimeSplitter {
|
||||
}
|
||||
|
||||
if ($moda[1] === "?") {
|
||||
if (!empty($moda[5]) and $moda[5] === "Nach") {
|
||||
if (!empty($moda[5]) and $moda[5] === "Nach" and empty(trim($moda[2], " 0"))) {
|
||||
return abs(intval($moda[0])) - 1;
|
||||
}
|
||||
return abs(intval($moda[0]));
|
||||
@ -681,13 +681,19 @@ final class NodaTimeSplitter {
|
||||
return ["?", $start, "00", "00", "+", ""];
|
||||
}
|
||||
|
||||
if (preg_match("/^(Nach|nach)\ [0-9]{4}/", $datum)) {
|
||||
if (preg_match("/^(Nach|nach)\ /", $datum)) {
|
||||
if (($spacePos = strpos($datum, " ")) === false) {
|
||||
return [];
|
||||
}
|
||||
if ($output = self::attempt_splitting(substr($datum, $spacePos))) {
|
||||
|
||||
// Handle cases like "Nach 60er Jahre" with divergent start and end year
|
||||
if ($output[1] !== $output[0] and intval($output[1]) > intval($output[0])) {
|
||||
$output[0] = $output[1];
|
||||
}
|
||||
|
||||
$output[1] = "?";
|
||||
$output[0] = strval((intval($output[0]) + 1));
|
||||
if (empty(trim($output[2], "0 .,"))) $output[0] = strval((intval($output[0]) + 1));
|
||||
$output[5] = "Nach";
|
||||
return $output;
|
||||
}
|
||||
@ -697,8 +703,14 @@ final class NodaTimeSplitter {
|
||||
return [];
|
||||
}
|
||||
if ($output = self::attempt_splitting(substr($datum, 0, $spacePos))) {
|
||||
|
||||
// Handle cases like "Nach 60er Jahre" with divergent start and end year
|
||||
if ($output[1] !== $output[0] and intval($output[1]) > intval($output[0])) {
|
||||
$output[0] = $output[1];
|
||||
}
|
||||
|
||||
$output[1] = "?";
|
||||
$output[0] = strval((intval($output[0]) + 1));
|
||||
if (empty(trim($output[2], "0 .,"))) $output[0] = strval((intval($output[0]) + 1));
|
||||
$output[5] = "Nach";
|
||||
return $output;
|
||||
}
|
||||
|
Reference in New Issue
Block a user