function CCParseDate($ParsingDate, $FormatMask) { global $CCSLocales; if (is_array($FormatMask) && strlen($ParsingDate)) { $DateArray = array(0, "1", "", "1", "", "", "", "", "", "", "", "", "", ""); $RegExp = CCGetDateRegExp($FormatMask); $IsValid = preg_match($RegExp[0], $ParsingDate, $matches); for ($i = 1; $i < sizeof($matches); $i++) { $DateArray[$RegExp[$i]] = $matches[$i]; } if (!$DateArray[ccsMonth] && ($DateArray[ccsFullMonth] || $DateArray[ccsShortMonth])) { if ($DateArray[ccsFullMonth]) { $DateArray[ccsMonth] = CCGetIndex($CCSLocales->GetFormatInfo("MonthNames"), $DateArray[ccsFullMonth], true) + 1; } else { if ($DateArray[ccsShortMonth]) { $DateArray[ccsMonth] = CCGetIndex($CCSLocales->GetFormatInfo("MonthShortNames"), $DateArray[ccsShortMonth], true) + 1; } } } else { $DateArray[ccsMonth] = intval($DateArray[ccsMonth]); } if (!$DateArray[ccsMonth]) { $DateArray[ccsMonth] = 1; } if (intval($DateArray[ccsDay]) == 0) { $DateArray[ccsDay] = 1; } else { $DateArray[ccsDay] = intval($DateArray[ccsDay]); } if ($DateArray[ccsAmPm]) { if (strtoupper(substr($DateArray[ccsAmPm], 0, 1)) == "A" || $DateArray[ccsAmPm] == $CCSLocales->GetFormatInfo("AMDesignator")) { $DateArray[ccsHour] = $DateArray[ccsHour] == 12 ? 0 : $DateArray[ccsHour]; } elseif ($DateArray[ccsHour] < 12) { $DateArray[ccsHour] += 12; } } if (strlen($DateArray[ccsYear]) == 2) { if ($DateArray[ccsYear] < 70) { $DateArray[ccsYear] = "20" . $DateArray[ccsYear]; } else { $DateArray[ccsYear] = "19" . $DateArray[ccsYear]; } } if ($DateArray[ccsYear] < 1971 && $DateArray[ccsYear] > 0) { $DateArray[ccsAppropriateYear] = $DateArray[ccsYear] + intval((2000 - $DateArray[ccsYear]) / 28) * 28; } else { if ($DateArray[ccsYear] > 2030) { $DateArray[ccsAppropriateYear] = $DateArray[ccsYear] - intval(($DateArray[ccsYear] - 2000) / 28) * 28; } else { $DateArray[ccsAppropriateYear] = $DateArray[ccsYear]; } } $DateArray[ccsHour] = intval($DateArray[ccsHour]); $DateArray[ccsMinute] = intval($DateArray[ccsMinute]); $DateArray[ccsSecond] = intval($DateArray[ccsSecond]); $DateArray[ccsTimestamp] = @mktime($DateArray[ccsHour], $DateArray[ccsMinute], $DateArray[ccsSecond], $DateArray[ccsMonth], $DateArray[ccsDay], $DateArray[ccsAppropriateYear]); if (!CCValidateDate($DateArray)) { $ParsingDate = ""; } else { $ParsingDate = $DateArray; } } return $ParsingDate; }
function CCParseDate($ParsingDate, $FormatMask) { global $ShortMonths; global $Months; if (is_array($FormatMask) && strlen($ParsingDate)) { $DateArray = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); $RegExp = CCGetDateRegExp($FormatMask); $IsValid = preg_match($RegExp[0], $ParsingDate, $matches); for ($i = 1; $i < sizeof($matches); $i++) { $DateArray[$RegExp[$i]] = $matches[$i]; } if ($DateArray[ccsMonth] == 0 && ($DateArray[ccsFullMonth] != 0 || $DateArray[ccsShortMonth] != 0)) { if ($DateArray[ccsFullMonth] != 0) { $DateArray[ccsMonth] = CCGetIndex($Months, $DateArray[ccsFullMonth], true) + 1; } else { if ($DateArray[ccsShortMonth] != 0) { $DateArray[ccsMonth] = CCGetIndex($ShortMonths, $DateArray[ccsShortMonth], true) + 1; } } } if ($DateArray[ccsHour] < 12 && strtoupper($DateArray[ccsAmPm][0]) == "P") { $DateArray[ccsHour] += 12; } if ($DateArray[ccsHour] == 12 && strtoupper($DateArray[ccsAmPm][0]) == "A") { $DateArray[ccsHour] = 0; } if (strlen($DateArray[ccsYear]) == 2) { if ($DateArray[ccsYear] < 70) { $DateArray[ccsYear] = "20" . $DateArray[ccsYear]; } else { $DateArray[ccsYear] = "19" . $DateArray[ccsYear]; } } if ($DateArray[ccsYear] < 1971 && $DateArray[ccsYear] > 0) { $DateArray[ccsAppropriateYear] = $DateArray[ccsYear] + intval((2000 - $DateArray[ccsYear]) / 28) * 28; } else { if ($DateArray[ccsYear] > 2030) { $DateArray[ccsAppropriateYear] = $DateArray[ccsYear] - intval(($DateArray[ccsYear] - 2000) / 28) * 28; } } //$ParsingDate = mktime ($DateArray[ccsHour], $DateArray[ccsMinute], $DateArray[ccsSecond], $DateArray[ccsMonth], $DateArray[ccsDay], $DateArray[ccsAppropriateYear]); $DateArray[ccsTimestamp] = mktime($DateArray[ccsHour], $DateArray[ccsMinute], $DateArray[ccsSecond], $DateArray[ccsMonth], $DateArray[ccsDay], $DateArray[ccsAppropriateYear]); if ($DateArray[ccsTimestamp] < 0) { $ParsingDate = ""; } else { $ParsingDate = $DateArray; } } return $ParsingDate; }