function detectFormatDate($date_a_convertir, $compl = "01") { global $msg; if (preg_match("#\\d{4}-\\d{2}-\\d{2}#", $date_a_convertir)) { $date = $date_a_convertir; } else { if (preg_match(getDatePattern(), $date_a_convertir)) { $date = extraitdate($date_a_convertir); } elseif (preg_match(getDatePattern("short"), $date_a_convertir)) { $format = str_replace("%", "", $msg["format_date_short"]); $format = str_replace("-", "", $format); $format = str_replace("/", "", $format); $format = str_replace("\\", "", $format); $format = str_replace(".", "", $format); $format = str_replace(" ", "", $format); $format = str_replace($msg["format_date_input_separator"], "", $format); list($date[substr($format, 0, 1)], $date[substr($format, 1, 1)], $date[substr($format, 2, 1)]) = sscanf($date_a_convertir, $msg["format_date_short_input"]); if ($date['Y'] && $date['m']) { $date = sprintf("%04d-%02s-%02s", $date['Y'], $date['m'], $compl); } else { $date = "0000-00-00"; } } elseif (preg_match(getDatePattern("year"), $date_a_convertir, $matches)) { $date = $matches[0] . "-" . $compl . "-" . $compl; } else { $date = "0000-00-00"; } } return $date; }
function aff_format_date($param) { //si c'est pas une date potable, on arrete là... if (!preg_match(getDatePattern(), $param[1]) && !preg_match(getDatePattern("short"), $param[1]) && !preg_match(getDatePattern("year"), $param[1])) { return $param[1]; } $date = detectFormatDate($param[1]); $year = substr($date, 0, 4); $month = substr($date, 5, 2); $day = substr($date, 8, 2); return date($param[0], mktime(0, 0, 0, $month, $day, $year)); }
function detectFormatDate($date_a_convertir, $compl = "01") { global $msg; if (preg_match("#\\d{4}-\\d{2}-\\d{2}#", $date_a_convertir)) { $date = $date_a_convertir; } else { if (preg_match(getDatePattern(), $date_a_convertir)) { $date = extraitdate($date_a_convertir); } elseif (preg_match(getDatePattern("short"), $date_a_convertir)) { $format = str_replace("%", "", $msg["format_date_short"]); $format = str_replace("-", "", $format); $format = str_replace("/", "", $format); $format = str_replace("\\", "", $format); $format = str_replace(".", "", $format); $format = str_replace(" ", "", $format); $format = str_replace($msg["format_date_input_separator"], "", $format); list($date[substr($format, 0, 1)], $date[substr($format, 1, 1)], $date[substr($format, 2, 1)]) = sscanf($date_a_convertir, $msg["format_date_short_input"]); if ($date['Y'] && $date['m']) { if ($compl == "min") { $date = sprintf("%04d-%02d-%02s", $date['Y'], $date['m'], "01"); } elseif ($compl == "max") { $date = sprintf("%04d-%02d-%02s", $date['Y'], $date['m'], date("t", mktime(0, 0, 0, $date['m'], 1, $date['Y']))); } else { $date = sprintf("%04d-%02d-%02s", $date['Y'], $date['m'], $compl); } } else { $date = "0000-00-00"; } } elseif (preg_match(getDatePattern("year"), $date_a_convertir, $matches)) { if ($compl == "min") { $date = $matches[0] . "-01-01"; } elseif ($compl == "max") { $date = $matches[0] . "-12-31"; } else { $date = $matches[0] . "-" . $compl . "-" . $compl; } } else { $format = str_replace("%", ".", $msg["format_date"]); $format = str_replace("-", "", $format); $format = str_replace("/", "", $format); $format = str_replace("\\", "", $format); $format = str_replace(".", "", $format); $format = str_replace(" ", "", $format); $pattern = array(); for ($i = 0; $i < strlen($format); $i++) { switch ($format[$i]) { case "m": case "d": $pattern[$i] = '\\d{1,2}'; break; case "Y": $pattern[$i] = '(\\d{2})'; break; } } if (preg_match("#" . implode($pattern, ".") . "#", $date_a_convertir, $matches)) { if (substr(date("Y"), 2, 2) < $matches['1']) { $correct_year = substr(date("Y"), 0, 2) * 1 - 1 . $matches[1]; } else { $correct_year = substr(date("Y"), 0, 2) . $matches[1]; } if (substr($format, -1) == "Y") { $date = detectFormatDate(substr($date_a_convertir, 0, -2) . $correct_year, $compl); } } else { $date = "0000-00-00"; } } } return $date; }