@@ -43,15 +43,30 @@ } static public function sqliteDateToFrench($d, $short = false) { if (strlen($d) == 10 || $short) - return \DateTime::createFromFormat('Y-m-d', substr($d, 0, 10))->format('d/m/Y'); + { + $d = substr($d, 0, 10); + $f = 'Y-m-d'; + $f2 = 'd/m/Y'; + } elseif (strlen($d) == 16) - return \DateTime::createFromFormat('Y-m-d H:i', $d)->format('d/m/Y H:i'); + { + $f = 'Y-m-d H:i'; + $f2 = 'd/m/Y H:i'; + } + else + { + $f = 'Y-m-d H:i:s'; + $f2 = 'd/m/Y H:i'; + } + + if ($dt = \DateTime::createFromFormat($f, $d)) + return $dt->format($f2); else - return \DateTime::createFromFormat('Y-m-d H:i:s', $d)->format('d/m/Y H:i'); + return $d; } static public function makeTimestampFromForm($d) { return mktime($d['h'], $d['min'], 0, $d['m'], $d['d'], $d['y']); @@ -75,11 +90,11 @@ return true; } static public function checkDateTime($str) { - if (!preg_match('!^(\d{4}-\d{2}-\d{2}) (\d{2}):(\d{2})(?::(\d{2}))?$!', $str, $match)) + if (!preg_match('!^(\d{4}-\d{2}-\d{2})[T ](\d{2}):(\d{2})!', $str, $match)) return false; if (!self::checkDate($match[1])) return false;