DateColumn   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 34
ccs 8
cts 8
cp 1
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A dateFormat() 0 5 1
A format() 0 3 1
A __construct() 0 3 1
1
<?php
2
3
namespace hamburgscleanest\DataTables\Models\ColumnFormatters;
4
5
use Carbon\Carbon;
6
use hamburgscleanest\DataTables\Interfaces\ColumnFormatter;
7
use Illuminate\Database\Eloquent\Model;
8
9
/**
10
 * Class DateColumn
11
 * @package hamburgscleanest\DataTables\Models\ColumnFormatters
12
 */
13
class DateColumn implements ColumnFormatter {
14
15
    private $_dateFormat;
16
17
    /**
18
     * DateColumn constructor.
19
     * @param string $dateFormat
20
     */
21 5
    public function __construct(string $dateFormat = 'Y-m-d H:i:s')
22
    {
23 5
        $this->_dateFormat = $dateFormat;
24 5
    }
25
26
    /**
27
     * Set the format of the date column, e.g. "Y-m-d H:i:s".
28
     *
29
     * @param string $dateFormat
30
     * @return DateColumn
31
     */
32 1
    public function dateFormat(string $dateFormat) : DateColumn
33
    {
34 1
        $this->_dateFormat = $dateFormat;
35
36 1
        return $this;
37
    }
38
39
    /**
40
     * @param Model $rowModel
41
     * @param string $column
42
     * @return string
43
     */
44 4
    public function format(Model $rowModel, string $column) : string
45
    {
46 4
        return Carbon::parse($column)->format($this->_dateFormat);
47
    }
48
}