From 46511c46c9918d9441019f53b62b1de92a7dac20 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Thu, 21 Nov 2013 10:52:19 -0600
Subject: [PATCH] forms: Don't assume client date time is parseable

---
 include/class.forms.php | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/include/class.forms.php b/include/class.forms.php
index 0063c1d38..4dc69b993 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -1019,14 +1019,15 @@ class DatetimePickerWidget extends Widget {
         $config = $this->field->getConfiguration();
         if ($datetime = parent::getValue()) {
             $datetime = (is_int($datetime) ? $datetime :
-                (int)DateTime::createFromFormat($cfg->getDateFormat() . ' G:i',
-                    $datetime . ' 00:00')
-                ->format('U'));
-            if (isset($data[$this->name . ':time'])) {
+                (($dt = DateTime::createFromFormat($cfg->getDateFormat() . ' G:i',
+                        $datetime . ' 00:00'))
+                    ? (int) $dt->format('U') : false)
+            );
+            if ($datetime && isset($data[$this->name . ':time'])) {
                 list($hr, $min) = explode(':', $data[$this->name . ':time']);
                 $datetime += $hr * 3600 + $min * 60;
             }
-            if ($config['gmt'])
+            if ($datetime && $config['gmt'])
                 $datetime -= (int) (3600 * $_SESSION['TZ_OFFSET'] +
                     ($_SESSION['TZ_DST'] ? date('I',$datetime) : 0));
         }
-- 
GitLab