aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/app/src/Sql/DateTimeParser.php
blob: eb3b58a089da6df445a7a5771d93768a6d064aeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;
    }
}