From f268ab412cd3e3114518a616e5750054ddf5c88d Mon Sep 17 00:00:00 2001 From: Joshua Ramon Enslin Date: Sun, 20 Sep 2020 17:40:45 +0200 Subject: [PATCH] Add capability to parse dates like "2300-800 v. Chr." (German) and "Kr. e. 1200" (Hungarian) --- src/NodaTimeSplitter.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/NodaTimeSplitter.php b/src/NodaTimeSplitter.php index f6d6730..b5e98e5 100644 --- a/src/NodaTimeSplitter.php +++ b/src/NodaTimeSplitter.php @@ -294,7 +294,11 @@ final class NodaTimeSplitter { $end = "-" . substr($datum, 5, 4); return [$start, $end, "00", "00", "-"]; } - + if (preg_match("/^[0-9][0-9][0-9][0-9](\-|\/)[0-9][0-9][0-9] v\. Chr\.$/", $datum)) { + $start = "-" . substr($datum, 0, 4); + $end = "-" . substr($datum, 5, 3); + return [$start, $end, "00", "00", "-"]; + } if (preg_match("/^[0-9][0-9][0-9](\-|\/)[0-9][0-9][0-9] v\. Chr\.$/", $datum)) { $start = "-" . substr($datum, 0, 3); $end = "-" . substr($datum, 4, 3); @@ -343,6 +347,11 @@ final class NodaTimeSplitter { $datum = self::clean_input($datum); + if (preg_match("/^Kr\.\ e\.\ [0-9][0-9][0-9][0-9]$/", $datum)) { + $start = "-" . substr($datum, 7, 4); + return [$start, $start, "00", "00", "-"]; + } + if (self::stri_occurs($datum, self::STOP_STRINGS_HUNGARIAN)) { return []; }