diff --git a/include/fields/DateTimeField.php b/include/fields/DateTimeField.php index db58cbeab3b289015722a768a9fcd1365169136c..0fdce417a3fbdd98e306a56bae51fa0ca11eb49c 100644 --- a/include/fields/DateTimeField.php +++ b/include/fields/DateTimeField.php @@ -80,16 +80,24 @@ class DateTimeField { public static function convertToDBFormat($date, $user = null) { global $current_user; - if(empty($user)) { - $user = $current_user; - } + if(empty($user)) { + $user = $current_user; + } - $format = $current_user->date_format; - if(empty($format)) { - $format = 'dd-mm-yyyy'; - } + $format = $current_user->date_format; + if (empty($format)) { + if (false === strpos($date, '-')) { + if(false === strpos($date, '.')){ + $format = 'dd/mm/yyyy'; + } else { + $format = 'dd.mm.yyyy'; + } + } else { + $format = 'dd-mm-yyyy'; + } + } - return self::__convertToDBFormat($date, $format); + return self::__convertToDBFormat($date, $format); } /** @@ -101,25 +109,41 @@ class DateTimeField { */ public static function __convertToDBFormat($date, $format) { - if ($format == '') { - $format = 'dd-mm-yyyy'; - } - $dbDate = ''; - $dateFormats = ['dd-mm-yyyy', 'dd/mm/yyyy', 'dd.mm.yyyy']; - if (in_array($format, $dateFormats)) { - list($d, $m, $y) = explode('-', $date); - } elseif ($format == 'mm-dd-yyyy') { - list($m, $d, $y) = explode('-', $date); - } elseif ($format == 'yyyy-mm-dd') { - list($y, $m, $d) = explode('-', $date); - } + $dbDate = ''; + if (empty($format)) { + if (false === strpos($date, '-')) { + if(false === strpos($date, '.')){ + $format = 'dd/mm/yyyy'; + } else { + $format = 'dd.mm.yyyy'; + } + } else { + $format = 'dd-mm-yyyy'; + } + } + switch ($format) { + case 'dd.mm.yyyy': + list($d, $m, $y) = explode('.', $date); + break; + case 'dd/mm/yyyy': + list($d, $m, $y) = explode('/', $date); + break; + case 'dd-mm-yyyy': + list($d, $m, $y) = explode('-', $date); + break; + case 'mm-dd-yyyy': + list($m, $d, $y) = explode('-', $date); + break; + case 'yyyy-mm-dd': + list($y, $m, $d) = explode('-', $date); + break; + } - if (!$y && !$m && !$d) { - $dbDate = ''; - } else { - $dbDate = $y . '-' . $m . '-' . $d; - } - return $dbDate; + if (!empty($y) && !empty($m) && !empty($d)) { + $dbDate = $y . '-' . $m . '-' . $d; + } + + return $dbDate; } /**