From 60b4b702fc98838961dcaa4653a46d2274588a46 Mon Sep 17 00:00:00 2001
From: Prasad <prasad@vtiger.com>
Date: Tue, 18 Feb 2020 13:12:21 +0530
Subject: [PATCH] Fixes #1249: Date format conversion before passing it to db

---
 include/fields/DateTimeField.php | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/include/fields/DateTimeField.php b/include/fields/DateTimeField.php
index b0a949c1a..56cdfb0e7 100644
--- a/include/fields/DateTimeField.php
+++ b/include/fields/DateTimeField.php
@@ -370,18 +370,29 @@ class DateTimeField {
 			$user = $current_user;
 		}
 
-		if($user->date_format == 'mm-dd-yyyy') {
+		$y = false;
+		$m = false;
+		$d = false;
+		$time = false;
+
+		if($user->date_format) {
 			list($date, $time) = explode(' ', $value);
 			if(!empty($date)) {
-				list($m, $d, $y) = explode('-', $date);
-				if(strlen($m) < 3) {
-					$time = ' '.$time;
-					$value = "$y-$m-$d".rtrim($time);
+				switch ($user->date_format) {
+					case 'mm.dd.yyyy': list($m, $d, $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($d, $m, $y) = explode('/', $date); break;
+					case 'mm-dd-yyyy': list($m, $d, $y) = explode('-', $date); break;
+					case 'dd-mm-yyyy': list($d, $m, $y) = explode('-', $date); break;
 				}
 			}
+			if ($y) {
+				$value = "$y-$m-$d ".rtrim($time);
+			}
 		}
 		return $value;
 	}
 
 
-}
+}
\ No newline at end of file
-- 
GitLab