diff --git a/src/NodaTimeSplitter.php b/src/NodaTimeSplitter.php index 5e50b5f..3221980 100644 --- a/src/NodaTimeSplitter.php +++ b/src/NodaTimeSplitter.php @@ -545,18 +545,18 @@ final class NodaTimeSplitter { // 10000-20000 if (!empty(\preg_match("/^[0-9]{5}(\-|\/)[0-9]{5}$/", $datum))) { - return new NodaSplitTime(start_year: \substr($datum, 0, 5), end_year: \substr($datum, 6, 5)); + return new NodaSplitTime(start_year: \substr($datum, 0, 5), end_year: \substr($datum, -5)); } // 0000-0000 if (\preg_match("/^[0-9]{4}(\-|\/|\–)[0-9]{4}(\.|)$/", $datum)) { - return new NodaSplitTime(start_year: \substr($datum, 0, 4), end_year: \substr($datum, 5, 4)); + return new NodaSplitTime(start_year: \substr($datum, 0, 4), end_year: \substr($datum, -4)); } // 1.900-2.000 if (\preg_match("/^[0-9]\.[0-9][0-9][0-9](\-|\/|\–)[0-9]\.[0-9][0-9][0-9]$/", $datum)) { $datum = \str_replace(".", "", $datum); - return new NodaSplitTime(start_year: \substr($datum, 0, 4), end_year: \substr($datum, 5, 4)); + return new NodaSplitTime(start_year: \substr($datum, 0, 4), end_year: \substr($datum, -4)); } // German TT.MM.JJJJ / TT.MM.JJJ / TT.MM.JJ / TT.MM.J @@ -601,7 +601,7 @@ final class NodaTimeSplitter { // Intl': 2020-12 if (\preg_match("/^[0-9]{4}\-[0-9]{2}$/", $datum)) { // German Y-m or 1912-15 $year = \substr($datum, 0, 4); - $month = \substr($datum, 5, 2); + $month = \substr($datum, -2); // Assume the end is a month if (intval($month) < 12) { diff --git a/tests/NodaTimeSplitterTest.php b/tests/NodaTimeSplitterTest.php index d02f6f0..0c90238 100644 --- a/tests/NodaTimeSplitterTest.php +++ b/tests/NodaTimeSplitterTest.php @@ -164,7 +164,7 @@ final class NodaTimeSplitterTest extends TestCase { new NodaSplitTime('1930', '2017', start_date: '1930-01-01', end_date: '2017-12-31'), - "1930–2017", + "1930-2017", ], ];