-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDate.php
105 lines (92 loc) · 2.37 KB
/
Date.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/**
* This file is part of the Grido (http://grido.bugyik.cz)
*
* Copyright (c) 2011 Petr Bugyík (http://petr.bugyik.cz)
*
* For the full copyright and license information, please view
* the file LICENSE.md that was distributed with this source code.
*/
namespace Grido\Components\Filters;
/**
* Date input filter.
*
* @package Grido
* @subpackage Components\Filters
* @author Petr Bugyík
*
* @property string $dateFormatInput
* @property string $dateFormatOutput
*/
class Date extends Text
{
/** @var string */
protected $formatValue;
/** @var string */
protected $dateFormatInput = 'd.m.Y';
/** @var string */
protected $dateFormatOutput = 'Y-m-d%';
/**
* Sets date-input format.
* @param string $format
* @return Date
*/
public function setDateFormatInput($format)
{
$this->dateFormatInput = $format;
return $this;
}
/**
* Returns date-input format.
* @return string
*/
public function getDateFormatInput()
{
return $this->dateFormatInput;
}
/**
* Sets date-output format.
* @param string $format
* @return Date
*/
public function setDateFormatOutput($format)
{
$this->dateFormatOutput = $format;
return $this;
}
/**
* Returns date-output format.
* @return string
*/
public function getDateFormatOutput()
{
return $this->dateFormatOutput;
}
/**
* @return \Nette\Forms\Controls\TextInput
*/
protected function getFormControl()
{
$control = parent::getFormControl();
$control->getControlPrototype()->class[] = 'date';
$control->getControlPrototype()->attrs['autocomplete'] = 'off';
return $control;
}
/**
* @param string $value
* @return Condition|bool
* @throws \Exception
* @internal
*/
public function __getCondition($value)
{
$condition = $this->condition;
if ($this->where === NULL && is_string($condition)) {
$column = $this->getColumn();
return ($date = \DateTime::createFromFormat($this->dateFormatInput, $value))
? Condition::setupFromArray(array($column, $condition, $date->format($this->dateFormatOutput)))
: Condition::setupEmpty();
}
return parent::__getCondition($value);
}
}