Added relevent links for parsing to the phpdoc
This commit is contained in:
parent
4f06f1524d
commit
e21a1a4df1
@ -16,17 +16,18 @@ use Symfony\Component\Form\Exception\TransformationFailedException;
|
||||
/**
|
||||
* @author Franz Wilding <franz.wilding@me.com>
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
* @author Fred Cox <mcfedr@gmail.com>
|
||||
*/
|
||||
class DateTimeToHtml5DateTimeLocalTransformer extends BaseDateTimeTransformer
|
||||
class DateTimeToHtml5LocalDateTimeTransformer extends BaseDateTimeTransformer
|
||||
{
|
||||
const HTML5_FORMAT = 'Y-m-d\\TH:i:s';
|
||||
|
||||
/**
|
||||
* Transforms a normalized date into a localized date without trailing timezone.
|
||||
* Transforms a \DateTime into a local date and time string.
|
||||
*
|
||||
* According to the HTML standard, the input string of a datetime-local
|
||||
* input is a RFC3339 date followed by 'T', followed by a RFC3339 time.
|
||||
* http://w3c.github.io/html-reference/datatypes.html#form.data.datetime-local
|
||||
* https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-local-date-and-time-string
|
||||
*
|
||||
* @param \DateTime|\DateTimeInterface $dateTime A DateTime object
|
||||
*
|
||||
@ -57,7 +58,11 @@ class DateTimeToHtml5DateTimeLocalTransformer extends BaseDateTimeTransformer
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms a formatted datetime-local string into a normalized date.
|
||||
* Transforms a local date and time string into a \DateTime.
|
||||
*
|
||||
* When transforming back to DateTime the regex is slightly laxer, taking into
|
||||
* account rules for parsing a local date and time string
|
||||
* https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#parse-a-local-date-and-time-string
|
||||
*
|
||||
* @param string $dateTimeLocal Formatted string
|
||||
*
|
@ -15,7 +15,7 @@ use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DataTransformerChain;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5DateTimeLocalTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5LocalDateTimeTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
|
||||
@ -75,7 +75,7 @@ class DateTimeType extends AbstractType
|
||||
|
||||
if ('single_text' === $options['widget']) {
|
||||
if (self::HTML5_FORMAT === $pattern) {
|
||||
$builder->addViewTransformer(new DateTimeToHtml5DateTimeLocalTransformer(
|
||||
$builder->addViewTransformer(new DateTimeToHtml5LocalDateTimeTransformer(
|
||||
$options['model_timezone'],
|
||||
$options['view_timezone']
|
||||
));
|
||||
|
@ -12,9 +12,9 @@
|
||||
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5DateTimeLocalTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5LocalDateTimeTransformer;
|
||||
|
||||
class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
class DateTimeToHtml5LocalDateTimeTransformerTest extends TestCase
|
||||
{
|
||||
public static function assertEquals($expected, $actual, $message = '', $delta = 0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
|
||||
{
|
||||
@ -59,7 +59,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testTransform($fromTz, $toTz, $from, $to)
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($fromTz, $toTz);
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($fromTz, $toTz);
|
||||
|
||||
$this->assertSame($to, $transformer->transform(null !== $from ? new \DateTime($from) : null));
|
||||
}
|
||||
@ -70,7 +70,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testTransformDateTimeImmutable($fromTz, $toTz, $from, $to)
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($fromTz, $toTz);
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($fromTz, $toTz);
|
||||
|
||||
$this->assertSame($to, $transformer->transform(null !== $from ? new \DateTimeImmutable($from) : null));
|
||||
}
|
||||
@ -80,7 +80,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testTransformRequiresValidDateTime()
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer();
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer();
|
||||
$transformer->transform('2010-01-01');
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testReverseTransform($toTz, $fromTz, $to, $from)
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($toTz, $fromTz);
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($toTz, $fromTz);
|
||||
|
||||
if (null !== $to) {
|
||||
$this->assertEquals(new \DateTime($to), $transformer->reverseTransform($from));
|
||||
@ -103,7 +103,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testReverseTransformRequiresString()
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer();
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer();
|
||||
$transformer->reverseTransform(12345);
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testReverseTransformWithNonExistingDate()
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer('UTC', 'UTC');
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer('UTC', 'UTC');
|
||||
|
||||
$transformer->reverseTransform('2010-04-31T04:05');
|
||||
}
|
||||
@ -122,7 +122,7 @@ class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
|
||||
*/
|
||||
public function testReverseTransformExpectsValidDateString()
|
||||
{
|
||||
$transformer = new DateTimeToHtml5DateTimeLocalTransformer('UTC', 'UTC');
|
||||
$transformer = new DateTimeToHtml5LocalDateTimeTransformer('UTC', 'UTC');
|
||||
|
||||
$transformer->reverseTransform('2010-2010-2010');
|
||||
}
|
Reference in New Issue
Block a user