8000 [Form] minor fixes in DateTime transformers · symfony/symfony@e7c9467 · GitHub
[go: up one dir, main page]

Skip to content

Commit e7c9467

Browse files
committed
[Form] minor fixes in DateTime transformers
1 parent 8c89a3a commit e7c9467

File tree

3 files changed

+31
-17
lines changed

3 files changed

+31
-17
lines changed

src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToRfc3339Transformer.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,15 @@
1919
class DateTimeToRfc3339Transformer extends BaseDateTimeTransformer
2020
{
2121
/**
22-
* {@inheritdoc}
22+
* Transforms a normalized date into a localized date.
23+
*
24+
* @param \DateTime|\DateTimeInterface $dateTime A DateTime object
25+
*
26+
* @return string The formatted date.
27+
*
28+
* @throws TransformationFailedException If the given value is not an
29+
* instance of \DateTime or if the
30+
* output timezone is not supported.
2331
*/
2432
public function transform($dateTime)
2533
{
@@ -32,8 +40,15 @@ public function transform($dateTime)
3240
}
3341

3442
if ($this->inputTimezone !== $this->outputTimezone) {
35-
$dateTime = clone $dateTime;
36-
$dateTime = $dateTime->setTimezone(new \DateTimeZone($this->outputTimezone));
43+
if (!$dateTime instanceof \DateTimeImmutable) {
44+
$dateTime = clone $dateTime;
45+
}
46+
47+
try {
48+
$dateTime = $dateTime->setTimezone(new \DateTimeZone($this->outputTimezone));
49+
} catch (\Exception $e) {
50+
throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
51+
}
3752
}
3853

3954
return preg_replace('/\+00:00$/', 'Z', $dateTime->format('c'));

src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,35 +90,35 @@ public function __construct($inputTimezone = null, $outputTimezone = null, $form
9090
* Transforms a DateTime object into a date string with the configured format
9191
* and timezone.
9292
*
93-
* @param \DateTime|\DateTimeInterface $value A DateTime object
93+
* @param \DateTime|\DateTimeInterface $dateTime A DateTime object
9494
*
9595
* @return string A value as produced by PHP's date() function
9696
*
9797
* @throws TransformationFailedException If the given value is not a \DateTime
9898
* instance or if the output timezone
9999
* is not supported.
100100
*/
101-
public function transform($value)
101+
public function transform($dateTime)
102102
{
103-
if (null === $value) {
103+
if (null === $dateTime) {
104104
return '';
105105
}
106106

107-
if (!$value instanceof \DateTime && !$value instanceof \DateTimeInterface) {
107+
if (!$dateTime instanceof \DateTime && !$dateTime instanceof \DateTimeInterface) {
108108
throw new TransformationFailedException('Expected a \DateTime or \DateTimeInterface.');
109109
}
110110

111-
if (!$value instanceof \DateTimeImmutable) {
112-
$value = clone $value;
111+
if (!$dateTime instanceof \DateTimeImmutable) {
112+
$dateTime = clone $dateTime;
113113
}
114114

115115
try {
D7AE
116-
$value = $value->setTimezone(new \DateTimeZone($this->outputTimezone));
116+
$dateTime = $dateTime->setTimezone(new \DateTimeZone($this->outputTimezone));
117117
} catch (\Exception $e) {
118118
throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
119119
}
120120

121-
return $value->format($this->generateFormat);
121+
return $dateTime->format($this->generateFormat);
122122
}
123123

124124
/**

src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformer.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,19 @@ class DateTimeToTimestampTransformer extends BaseDateTimeTransformer
2929
* @return int A timestamp
3030
*
3131
* @throws TransformationFailedException If the given value is not an instance
32-
* of \DateTime or if the output
33-
* timezone is not supported.
32+
* of \DateTime.
3433
*/
35-
public function transform($value)
34+
public function transform($dateTime)
3635
{
37-
if (null === $value) {
36+
if (null === $dateTime) {
3837
return;
3938
}
4039

41-
if (!$value instanceof \DateTime && !$value instanceof \DateTimeInterface) {
40+
if (!$dateTime instanceof \DateTime && !$dateTime instanceof \DateTimeInterface) {
4241
throw new TransformationFailedException('Expected a \DateTime or \DateTimeInterface.');
4342
}
4443

45-
return $value->getTimestamp();
44+
return $dateTime->getTimestamp();
4645
}
4746

4847
/**

0 commit comments

Comments
 (0)
0