Completed
Branch master (220ce5)
by De Cramer
16:11
created

Time::timeToText()   B

Complexity

Conditions 4
Paths 8

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 17
CRAP Score 4.0186

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 8.6845
c 0
b 0
f 0
ccs 17
cts 19
cp 0.8947
cc 4
eloc 16
nc 8
nop 2
crap 4.0186
1
<?php
2
3
namespace eXpansion\Framework\Core\Helpers;
4
5
class Time
6
{
7
    /**
8
     * Transform tm timestamp to mm:ss.ccc string
9
     *
10
     * @param int $time
11
     * @param bool $milliseconds
12
     *
13
     * @return string
14
     */
15 1
    public function timeToText($time, $milliseconds = false)
16
    {
17 1
        $sign = "";
18 1
        if ($time < 0) {
19 1
            $sign = "-";
20 1
        }
21 1
        $time = abs($time);
22 1
        $cent = str_pad(($time % 1000), 3, '0', STR_PAD_LEFT);
23 1
        $time = floor($time / 1000);
24 1
        $sec = str_pad($time % 60, 2, '0', STR_PAD_LEFT);
25 1
        $min = str_pad(floor($time / 60), 2, '0', STR_PAD_LEFT);
26 1
        $hour = str_pad(floor($time / 60 / 60), 1, '0');
27
28 1
        $textTime = $min.':'.$sec;
29 1
        if (floor($time / 60 / 60) > 0) {
30
            $textTime = $hour."'".$textTime;
31
        }
32
33 1
        if ($milliseconds) {
34 1
            $textTime = $textTime.'.'.$cent;
35 1
        }
36
37 1
        return $sign.$textTime;
38
    }
39
40
    /**
41
     * Transform mm:ss to tm timestamp
42
     *
43
     * @param string $string formatted like mm:ss
44
     *
45
     * @return int
46
     */
47 1
    public function textToTime($string)
48
    {
49 1
        $timeLimit = explode(":", trim($string));
50 1
        if (count($timeLimit) == 1) {
51 1
            return intval($timeLimit[0] * 1000);
52
        } else {
53 1
            return intval($timeLimit[0] * 60 * 1000) + intval($timeLimit[1] * 1000);
54
        }
55
    }
56
}
57