Translate date formats to something DateTime::createFromFormat can understand.

This commit is contained in:
Eduardo Reveles 2014-10-01 01:09:27 -05:00
parent 3e31d97992
commit 00940cfee9
2 changed files with 18 additions and 0 deletions

View file

@ -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

View file

@ -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'));
}
}