diff options
Diffstat (limited to 'services/app/src/Sql/DateTimeParser.php')
| -rw-r--r-- | services/app/src/Sql/DateTimeParser.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/services/app/src/Sql/DateTimeParser.php b/services/app/src/Sql/DateTimeParser.php new file mode 100644 index 0000000..eb3b58a --- /dev/null +++ b/services/app/src/Sql/DateTimeParser.php @@ -0,0 +1,31 @@ +<?php + +declare(strict_types=1); + +namespace Nsfisis\Albatross\Sql; + +use DateTimeImmutable; +use DateTimeZone; + +final class DateTimeParser +{ + private const FORMATS = [ + 'Y-m-d H:i:s.u', + 'Y-m-d H:i:s', + ]; + + public static function parse(string $s): DateTimeImmutable|false + { + foreach (self::FORMATS as $format) { + $dt = DateTimeImmutable::createFromFormat( + $format, + $s, + new DateTimeZone('UTC'), + ); + if ($dt !== false) { + return $dt; + } + } + return false; + } +} |
