Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 685e11d

Browse files
committed
[DX] derive default timezone from reference_date option when possible
1 parent e3afab7 commit 685e11d

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,18 @@ public function configureOptions(OptionsResolver $resolver)
267267
];
268268
};
269269

270+
$modelTimezone = static function (Options $options, $value): ?string {
271+
if (null !== $value) {
272+
return $value;
273+
}
274+
275+
if (null !== $options['reference_date']) {
276+
return $options['reference_date']->getTimezone()->getName();
277+
}
278+
279+
return null;
280+
};
281+
270282
$resolver->setDefaults([
271283
'hours' => range(0, 23),
272284
'minutes' => range(0, 59),
@@ -276,7 +288,7 @@ public function configureOptions(OptionsResolver $resolver)
276288
'input_format' => 'H:i:s',
277289
'with_minutes' => true,
278290
'with_seconds' => false,
279-
'model_timezone' => null,
291+
'model_timezone' => $modelTimezone,
280292
'view_timezone' => null,
281293
'reference_date' => null,
282294
'placeholder' => $placeholderDefault,
@@ -325,6 +337,8 @@ public function configureOptions(OptionsResolver $resolver)
325337
$resolver->setAllowedTypes('minutes', 'array');
326338
$resolver->setAllowedTypes('seconds', 'array');
327339
$resolver->setAllowedTypes('input_format', 'string');
340+
$resolver->setAllowedTypes('model_timezone', ['null', 'string']);
341+
$resolver->setAllowedTypes('view_timezone', ['null', 'string']);
328342
$resolver->setAllowedTypes('reference_date', ['null', \DateTimeInterface::class]);
329343
}
330344

0 commit comments

Comments
 (0)