@@ -280,6 +280,22 @@ public function configureOptions(OptionsResolver $resolver)
280
280
return null ;
281
281
};
282
282
283
+ $ viewTimezone = static function (Options $ options , $ value ): ?string {
284
+ if (null !== $ value ) {
285
+ return $ value ;
286
+ }
287
+
288
+ if (null !== $ options ['model_timezone ' ]) {
289
+ return $ options ['model_timezone ' ];
290
+ }
291
+
292
+ if (null !== $ options ['reference_date ' ]) {
293
+ return $ options ['reference_date ' ]->getTimezone ()->getName ();
294
+ }
295
+
296
+ return null ;
297
+ };
298
+
283
299
$ resolver ->setDefaults ([
284
300
'hours ' => range (0 , 23 ),
285
301
'minutes ' => range (0 , 59 ),
@@ -290,7 +306,7 @@ public function configureOptions(OptionsResolver $resolver)
290
306
'with_minutes ' => true ,
291
307
'with_seconds ' => false ,
292
308
'model_timezone ' => $ modelTimezone ,
293
- 'view_timezone ' => null ,
309
+ 'view_timezone ' => $ viewTimezone ,
294
310
'reference_date ' => null ,
295
311
'placeholder ' => $ placeholderDefault ,
296
312
'html5 ' => true ,
@@ -310,12 +326,12 @@ public function configureOptions(OptionsResolver $resolver)
310
326
'choice_translation_domain ' => false ,
311
327
]);
312
328
313
- $ resolver ->setNormalizer ('model_timezone ' , function (Options $ options , $ modelTimezone ): ?string {
314
- if (null !== $ modelTimezone && $ options ['view_timezone ' ] !== $ modelTimezone && null === $ options ['reference_date ' ]) {
329
+ $ resolver ->setNormalizer ('view_timezone ' , function (Options $ options , $ viewTimezone ): ?string {
330
+ if (null !== $ viewTimezone && $ options ['model_timezone ' ] !== $ viewTimezone && null === $ options ['reference_date ' ]) {
315
331
throw new LogicException (sprintf ('Using different values for the "model_timezone" and "view_timezone" options without configuring a reference date is not supported. ' ));
316
332
}
317
333
318
- return $ modelTimezone ;
334
+ return $ viewTimezone ;
319
335
});
320
336
321
337
$ resolver ->setNormalizer ('placeholder ' , $ placeholderNormalizer );
0 commit comments