From 6e37666c2f2490691a489be2d169d3f1c0277cef Mon Sep 17 00:00:00 2001 From: ADmad Date: Mon, 7 Nov 2016 11:04:06 +0530 Subject: [PATCH 1/3] Get timezone only if required. --- src/View/Widget/DateTimeWidget.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/View/Widget/DateTimeWidget.php b/src/View/Widget/DateTimeWidget.php index 20e61e40..312441bd 100644 --- a/src/View/Widget/DateTimeWidget.php +++ b/src/View/Widget/DateTimeWidget.php @@ -44,9 +44,11 @@ public function render(array $data, ContextInterface $context) } if ($val) { - $timestamp = $val->format('U'); - $dateTimeZone = new \DateTimeZone(date_default_timezone_get()); - $timezoneOffset = ($dateTimeZone->getOffset($val) / 60); + if ($timezoneAware) { + $timestamp = $val->format('U'); + $dateTimeZone = new \DateTimeZone(date_default_timezone_get()); + $timezoneOffset = ($dateTimeZone->getOffset($val) / 60); + } $val = $val->format($type === 'date' ? 'Y-m-d' : 'Y-m-d H:i:s'); } From 91aa3355ca60b9c9c2c7c895dd616b09736ba95f Mon Sep 17 00:00:00 2001 From: ADmad Date: Mon, 7 Nov 2016 11:05:46 +0530 Subject: [PATCH 2/3] Allow specifying custom locale. --- src/View/Widget/DateTimeWidget.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/View/Widget/DateTimeWidget.php b/src/View/Widget/DateTimeWidget.php index 312441bd..97f80853 100644 --- a/src/View/Widget/DateTimeWidget.php +++ b/src/View/Widget/DateTimeWidget.php @@ -28,7 +28,7 @@ public function render(array $data, ContextInterface $context) $disabled = isset($data['disabled']) && $data['disabled'] ? 'disabled' : ''; $role = isset($data['role']) ? $data['role'] : 'datetime-picker'; $format = null; - $locale = I18n::locale(); + $locale = isset($data['locale']) ? $data['locale'] : I18n::locale(); $timezoneAware = Configure::read('CrudView.timezoneAwareDateTimeWidget'); From 305f92b2fb660aa1d812dacbc0f4c27a9a10b4e3 Mon Sep 17 00:00:00 2001 From: ADmad Date: Mon, 7 Nov 2016 11:09:34 +0530 Subject: [PATCH 3/3] Add "use" statment. --- src/View/Widget/DateTimeWidget.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/View/Widget/DateTimeWidget.php b/src/View/Widget/DateTimeWidget.php index 97f80853..1ff8cb9a 100644 --- a/src/View/Widget/DateTimeWidget.php +++ b/src/View/Widget/DateTimeWidget.php @@ -6,6 +6,7 @@ use Cake\I18n\Time; use Cake\View\Form\ContextInterface; use DateTimeInterface; +use DateTimeZone; class DateTimeWidget extends \Cake\View\Widget\DateTimeWidget { @@ -46,7 +47,7 @@ public function render(array $data, ContextInterface $context) if ($val) { if ($timezoneAware) { $timestamp = $val->format('U'); - $dateTimeZone = new \DateTimeZone(date_default_timezone_get()); + $dateTimeZone = new DateTimeZone(date_default_timezone_get()); $timezoneOffset = ($dateTimeZone->getOffset($val) / 60); } $val = $val->format($type === 'date' ? 'Y-m-d' : 'Y-m-d H:i:s');