mirror of
https://github.com/Respect/Validation.git
synced 2024-06-29 10:40:24 +02:00
Translate date formats to something DateTime::createFromFormat can understand.
This commit is contained in:
parent
3e31d97992
commit
00940cfee9
|
@ -22,6 +22,15 @@ class Date extends AbstractRule
|
|||
return false !== strtotime($input);
|
||||
}
|
||||
|
||||
$exceptionalFormats = array(
|
||||
'c' => 'Y-m-d\TH:i:sP',
|
||||
'r' => 'D, d M Y H:i:s O',
|
||||
);
|
||||
|
||||
if ( in_array($this->format, array_keys($exceptionalFormats)) ) {
|
||||
$this->format = $exceptionalFormats[ $this->format ];
|
||||
}
|
||||
|
||||
$dateFromFormat = DateTime::createFromFormat($this->format, $input);
|
||||
|
||||
return $dateFromFormat
|
||||
|
|
|
@ -63,5 +63,14 @@ class DateTest extends \PHPUnit_Framework_TestCase
|
|||
$this->dateValidator = new Date('y-m-d');
|
||||
$this->assertFalse($this->dateValidator->assert('2009-09-09'));
|
||||
}
|
||||
|
||||
public function testDateTimeExceptionalFormatsThatShouldBeValid()
|
||||
{
|
||||
$this->dateValidator = new Date('c');
|
||||
$this->assertTrue($this->dateValidator->assert('2004-02-12T15:19:21+00:00'));
|
||||
|
||||
$this->dateValidator = new Date('r');
|
||||
$this->assertTrue($this->dateValidator->assert('Thu, 29 Dec 2005 01:02:03 +0000'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue