@@ -267,6 +267,18 @@ public function configureOptions(OptionsResolver $resolver)
267
267
];
268
268
};
269
269
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
+
270
282
$ resolver ->setDefaults ([
271
283
'hours ' => range (0 , 23 ),
272
284
'minutes ' => range (0 , 59 ),
@@ -276,7 +288,7 @@ public function configureOptions(OptionsResolver $resolver)
276
288
'input_format ' => 'H:i:s ' ,
277
289
'with_minutes ' => true ,
278
290
'with_seconds ' => false ,
279
- 'model_timezone ' => null ,
291
+ 'model_timezone ' => $ modelTimezone ,
280
292
'view_timezone ' => null ,
281
293
'reference_date ' => null ,
282
294
'placeholder ' => $ placeholderDefault ,
@@ -325,6 +337,8 @@ public function configureOptions(OptionsResolver $resolver)
325
337
$ resolver ->setAllowedTypes ('minutes ' , 'array ' );
326
338
$ resolver ->setAllowedTypes ('seconds ' , 'array ' );
327
339
$ resolver ->setAllowedTypes ('input_format ' , 'string ' );
340
+ $ resolver ->setAllowedTypes ('model_timezone ' , ['null ' , 'string ' ]);
341
+ $ resolver ->setAllowedTypes ('view_timezone ' , ['null ' , 'string ' ]);
328
342
$ resolver ->setAllowedTypes ('reference_date ' , ['null ' , \DateTimeInterface::class]);
329
343
}
330
344
0 commit comments