DateParser   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 13
c 1
b 0
f 0
dl 0
loc 23
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A parse() 0 21 5
1
<?php
2
3
namespace Audiens\AdForm\Entity;
4
5
use DateTime;
6
7
class DateParser
8
{
9
    public static function parse($date)
10
    {
11
        if ($date instanceof DateTime) {
12
            return $date;
13
        }
14
15
        if (\is_numeric($date)) {
16
            $dateTime = new DateTime();
17
            $dateTime->setTimestamp((int)$date);
18
19
            return $dateTime;
20
        }
21
22
        $format = 'Y-m-d\TH:i:sP'; // ISO 8601
23
        if (\preg_match('`^\d{4}-\d{2}-\d{2}$`', $date)) {
24
            $date .= 'T00:00:00+00:00';
25
        } elseif (\preg_match('`^(\d{4}-\d{2}-\d{2}\T\d{2}:\d{2}:\d{2})(\.\d{1,3})?Z$`', $date, $matches)) {
26
            $date = $matches[1].'+00:00';
27
        }
28
29
        return DateTime::createFromFormat($format, $date);
30
    }
31
}
32