Completed
Push — 1.x ( c7de71...29da9d )
by Markus
03:01
created

DateUtil   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 75%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 10
c 2
b 0
f 1
lcom 0
cbo 0
dl 0
loc 56
ccs 12
cts 16
cp 0.75
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
B getDateFormat() 0 9 5
A getDefaultParams() 0 15 3
A getDateString() 0 8 2
1
<?php
2
3
/*
4
 * This file is part of the eluceo/iCal package.
5
 *
6
 * (c) Markus Poerschke <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace Eluceo\iCal\Util;
13
14
class DateUtil
15
{
16 4
    public static function getDefaultParams(\DateTime $dateTime = null, $noTime = false, $useTimezone = false)
17
    {
18 4
        $params = [];
19
20 4
        if ($useTimezone) {
21
            $timeZone       = $dateTime->getTimezone()->getName();
0 ignored issues
show
Bug introduced by
It seems like $dateTime is not always an object, but can also be of type null. Maybe add an additional type check?

If a variable is not always an object, we recommend to add an additional type check to ensure your method call is safe:

function someFunction(A $objectMaybe = null)
{
    if ($objectMaybe instanceof A) {
        $objectMaybe->doSomething();
    }
}
Loading history...
22
            $params['TZID'] = $timeZone;
23
        }
24
25 4
        if ($noTime) {
26
            $params['VALUE'] = 'DATE';
27
        }
28
29 4
        return $params;
30
    }
31
32
    /**
33
     * Returns a formatted date string.
34
     *
35
     * @param \DateTime|null $dateTime    The DateTime object
36
     * @param bool           $noTime      Indicates if the time will be added
37
     * @param bool           $useTimezone
38
     * @param bool           $useUtc
39
     *
40
     * @return mixed
41
     */
42 4
    public static function getDateString(\DateTime $dateTime = null, $noTime = false, $useTimezone = false, $useUtc = false)
43
    {
44 4
        if (empty($dateTime)) {
45 2
            $dateTime = new \DateTime();
46
        }
47
48 4
        return $dateTime->format(self::getDateFormat($noTime, $useTimezone, $useUtc));
49
    }
50
51
    /**
52
     * Returns the date format that can be passed to DateTime::format().
53
     *
54
     * @param bool $noTime      Indicates if the time will be added
55
     * @param bool $useTimezone
56
     * @param bool $useUtc
57
     *
58
     * @return string
59
     */
60 4
    public static function getDateFormat($noTime = false, $useTimezone = false, $useUtc = false)
61
    {
62
        // Do not use UTC time (Z) if timezone support is enabled.
63 4
        if ($useTimezone || !$useUtc) {
64
            return $noTime ? 'Ymd' : 'Ymd\THis';
65
        }
66
67 4
        return $noTime ? 'Ymd' : 'Ymd\THis\Z';
68
    }
69
}
70