Skip to content

Commit e21a1a4

Browse files
committed
Added relevent links for parsing to the phpdoc
1 parent 4f06f15 commit e21a1a4

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616
/**
1717
* @author Franz Wilding <franz.wilding@me.com>
1818
* @author Bernhard Schussek <bschussek@gmail.com>
19+
* @author Fred Cox <mcfedr@gmail.com>
1920
*/
20-
class DateTimeToHtml5DateTimeLocalTransformer extends BaseDateTimeTransformer
21+
class DateTimeToHtml5LocalDateTimeTransformer extends BaseDateTimeTransformer
2122
{
2223
const HTML5_FORMAT = 'Y-m-d\\TH:i:s';
2324

2425
/**
25-
* Transforms a normalized date into a localized date without trailing timezone.
26+
* Transforms a \DateTime into a local date and time string.
2627
*
2728
* According to the HTML standard, the input string of a datetime-local
2829
* input is a RFC3339 date followed by 'T', followed by a RFC3339 time.
29-
* http://w3c.github.io/html-reference/datatypes.html#form.data.datetime-local
30+
* https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-local-date-and-time-string
3031
*
3132
* @param \DateTime|\DateTimeInterface $dateTime A DateTime object
3233
*
@@ -57,7 +58,11 @@ public function transform($dateTime)
5758
}
5859

5960
/**
60-
* Transforms a formatted datetime-local string into a normalized date.
61+
* Transforms a local date and time string into a \DateTime.
62+
*
63+
* When transforming back to DateTime the regex is slightly laxer, taking into
64+
* account rules for parsing a local date and time string
65+
* https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#parse-a-local-date-and-time-string
6166
*
6267
* @param string $dateTimeLocal Formatted string
6368
*

src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer;
1616
use Symfony\Component\Form\Extension\Core\DataTransformer\DataTransformerChain;
1717
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer;
18-
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5DateTimeLocalTransformer;
18+
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5LocalDateTimeTransformer;
1919
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer;
2020
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
2121
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
@@ -75,7 +75,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
7575

7676
if ('single_text' === $options['widget']) {
7777
if (self::HTML5_FORMAT === $pattern) {
78-
$builder->addViewTransformer(new DateTimeToHtml5DateTimeLocalTransformer(
78+
$builder->addViewTransformer(new DateTimeToHtml5LocalDateTimeTransformer(
7979
$options['model_timezone'],
8080
$options['view_timezone']
8181
));
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
1313

1414
use PHPUnit\Framework\TestCase;
15-
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5DateTimeLocalTransformer;
15+
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToHtml5LocalDateTimeTransformer;
1616

17-
class DateTimeToHtml5DateTimeLocaleTransformerTest extends TestCase
17+
class DateTimeToHtml5LocalDateTimeTransformerTest extends TestCase
1818
{
1919
public static function assertEquals($expected, $actual, $message = '', $delta = 0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
2020
{
@@ -59,7 +59,7 @@ public function reverseTransformProvider()
5959
*/
6060
public function testTransform($fromTz, $toTz, $from, $to)
6161
{
62-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($fromTz, $toTz);
62+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($fromTz, $toTz);
6363

6464
$this->assertSame($to, $transformer->transform(null !== $from ? new \DateTime($from) : null));
6565
}
@@ -70,7 +70,7 @@ public function testTransform($fromTz, $toTz, $from, $to)
7070
*/
7171
public function testTransformDateTimeImmutable($fromTz, $toTz, $from, $to)
7272
{
73-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($fromTz, $toTz);
73+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($fromTz, $toTz);
7474

7575
$this->assertSame($to, $transformer->transform(null !== $from ? new \DateTimeImmutable($from) : null));
7676
}
@@ -80,7 +80,7 @@ public function testTransformDateTimeImmutable($fromTz, $toTz, $from, $to)
8080
*/
8181
public function testTransformRequiresValidDateTime()
8282
{
83-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer();
83+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer();
8484
$transformer->transform('2010-01-01');
8585
}
8686

@@ -89,7 +89,7 @@ public function testTransformRequiresValidDateTime()
8989
*/
9090
public function testReverseTransform($toTz, $fromTz, $to, $from)
9191
{
92-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer($toTz, $fromTz);
92+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer($toTz, $fromTz);
9393

9494
if (null !== $to) {
9595
$this->assertEquals(new \DateTime($to), $transformer->reverseTransform($from));
@@ -103,7 +103,7 @@ public function testReverseTransform($toTz, $fromTz, $to, $from)
103103
*/
104104
public function testReverseTransformRequiresString()
105105
{
106-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer();
106+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer();
107107
$transformer->reverseTransform(12345);
108108
}
109109

@@ -112,7 +112,7 @@ public function testReverseTransformRequiresString()
112112
*/
113113
public function testReverseTransformWithNonExistingDate()
114114
{
115-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer('UTC', 'UTC');
115+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer('UTC', 'UTC');
116116

117117
$transformer->reverseTransform('2010-04-31T04:05');
118118
}
@@ -122,7 +122,7 @@ public function testReverseTransformWithNonExistingDate()
122122
*/
123123
public function testReverseTransformExpectsValidDateString()
124124
{
125-
$transformer = new DateTimeToHtml5DateTimeLocalTransformer('UTC', 'UTC');
125+
$transformer = new DateTimeToHtml5LocalDateTimeTransformer('UTC', 'UTC');
126126

127127
$transformer->reverseTransform('2010-2010-2010');
128128
}

0 commit comments

Comments
 (0)