diff --git a/include/fields/DateTimeField.php b/include/fields/DateTimeField.php
index b0a949c1a712efc0cd48fa401568a0d5bb734e9e..56cdfb0e7f80a0782a8e807ca54c9854788314cc 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