X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FDateTimeFormat.php;h=862ce6e9affe08e0e87b6df66d1700c442ba8597;hb=b5ad8c3e153976cf3e63753597377f09852d98d7;hp=96cddfeec928e19165677fba30f984b83e5f44a0;hpb=045238070b57bd20ddcb17163afc5b404deba3e6;p=friendica.git diff --git a/src/Util/DateTimeFormat.php b/src/Util/DateTimeFormat.php index 96cddfeec9..862ce6e9af 100644 --- a/src/Util/DateTimeFormat.php +++ b/src/Util/DateTimeFormat.php @@ -135,7 +135,7 @@ class DateTimeFormat $s = 'now'; } - $s = self::fixDateFormat($s); + $s = self::fix($s); /* * Slight hackish adjustment so that 'zero' datetime actually returns what is intended @@ -178,23 +178,26 @@ class DateTimeFormat /** * Fix weird date formats * + * @see \Friendica\Test\src\Util\DateTimeFormatTest::dataFix() for a list of examples handled by this method. * @param string $dateString * @return string */ - private static function fixDateFormat(string $dateString): string + public static function fix(string $dateString): string { - $pattern = - [ - ['#(\w+), (\d+/\d+/\d+) - (\d+:\d+)#', '$1, $2 $3'], - ['#(\d+-\d+-\d+)T(\d+:\d+:\d+)ZZ#', '$1T$2Z'], - ['#(\d+-\d+-\d+)T(\d+:\d+:\d+\.\d+)ZZ#', '$1T$2Z'], - ['#(\w+), (\d+ \w+ \d+) (\d+:\d+:\d+) (.+)#', '$2 $3 $4'], - ['#(\d+:\d+) (\w+), (\w+) (\d+), (\d+)#', '$1 $2 $3 $4 $5'], - ]; - - foreach ($pattern as $search_replace) { - $dateString = preg_replace($search_replace[0], $search_replace[1], $dateString); + $patterns = [ + ['#(\w+), (\d+/\d+/\d+) - (\d+:\d+)#', '$1, $2 $3'], + ['#(\d+-\d+-\d+)T(\d+:\d+:\d+)ZZ#', '$1T$2Z'], + ['#(\d+-\d+-\d+)T(\d+:\d+:\d+\.\d+)ZZ#', '$1T$2Z'], + ['#(\w+), (\d+ \w+ \d+) (\d+:\d+:\d+) (.+)#', '$2 $3 $4'], + ['#(\d+:\d+) (\w+), (\w+) (\d+), (\d+)#', '$1 $2 $3 $4 $5'], + ['#(\w+ \d+, \d+) - (\d+:\d+)#', '$1, $2'], + ['~(\d+-\d+-\d+)T(\d+:\d+:\d+)+(\d+:\d+)~', '$1T$2+$3'], + ]; + + foreach ($patterns as $pattern) { + $dateString = preg_replace($pattern[0], $pattern[1], $dateString); } + return $dateString; }