@@ -280,6 +280,18 @@ 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 ' ] && null === $ options ['reference_date ' ]) {
289
+ return $ options ['model_timezone ' ];
290
+ }
291
+
292
+ return null ;
293
+ };
294
+
283
295
$ resolver ->setDefaults ([
284
296
'hours ' => range (0 , 23 ),
285
297
'minutes ' => range (0 , 59 ),
@@ -290,7 +302,7 @@ public function configureOptions(OptionsResolver $resolver)
290
302
'with_minutes ' => true ,
291
303
'with_seconds ' => false ,
292
304
'model_timezone ' => $ modelTimezone ,
293
- 'view_timezone ' => null ,
305
+ 'view_timezone ' => $ viewTimezone ,
294
306
'reference_date ' => null ,
295
307
'placeholder ' => $ placeholderDefault ,
296
308
'html5 ' => true ,
@@ -310,12 +322,12 @@ public function configureOptions(OptionsResolver $resolver)
310
322
'choice_translation_domain ' => false ,
311
323
]);
312
324
313
- $ resolver ->setNormalizer ('model_timezone ' , function (Options $ options , $ modelTimezone ): ?string {
314
- if (null !== $ modelTimezone && $ options ['view_timezone ' ] !== $ modelTimezone && null === $ options ['reference_date ' ]) {
325
+ $ resolver ->setNormalizer ('view_timezone ' , function (Options $ options , $ viewTimezone ): ?string {
326
+ if (null !== $ options ['model_timezone ' ] && $ viewTimezone !== $ options [ ' model_timezone ' ] && null === $ options ['reference_date ' ]) {
315
327
throw new LogicException (sprintf ('Using different values for the "model_timezone" and "view_timezone" options without configuring a reference date is not supported. ' ));
316
328
}
317
329
318
- return $ modelTimezone ;
330
+ return $ viewTimezone ;
319
331
});
320
332
321
333
$ resolver ->setNormalizer ('placeholder ' , $ placeholderNormalizer );
0 commit comments