From 3e381ae1e8d68c68f84a0de50bc1f406db62644d Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Mon, 29 Jun 2015 00:32:32 +0200 Subject: [PATCH] Allow passing DateTime objects in pickerOptions --- Form/Type/DatetimeType.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Form/Type/DatetimeType.php b/Form/Type/DatetimeType.php index 381d65a..de101e7 100644 --- a/Form/Type/DatetimeType.php +++ b/Form/Type/DatetimeType.php @@ -74,6 +74,17 @@ public function buildView(FormView $view, FormInterface $form, array $options) $pickerOptions['format'] = DatetimeType::convertIntlFormaterToMalot( $pickerOptions['format'] ); } + // Convert DateTimeInterface objects to date strings before passing to JavaScript. + foreach ($pickerOptions as $name => $value) { + if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) { + if (!$value instanceof \DateTimeImmutable) { + $value = clone $value; + } + $timezone = new \DateTimeZone($options['view_timezone']); + $pickerOptions[$name] = $value->setTimezone($timezone)->format('Y-m-d H:i:s'); + } + } + $view->vars = array_replace($view->vars, array( 'pickerOptions' => $pickerOptions, ));