public static function getdate($timestamp = null)
{
if ($timestamp === null) {
$timestamp = time();
}
if (is_string($timestamp)) {
if (ctype_digit($timestamp) || $timestamp[0] == '-' && ctype_digit(substr($timestamp, 1))) {
$timestamp = (int) $timestamp;
} else {
$timestamp = strtotime($timestamp);
}
}
$dateString = self::date("s|i|G|j|w|n|Y|z|l|F", $timestamp);
$dateArray = explode("|", $dateString);
$result = array("seconds" => $dateArray[0], "minutes" => $dateArray[1], "hours" => $dateArray[2], "mday" => $dateArray[3], "wday" => $dateArray[4], "mon" => $dateArray[5], "year" => $dateArray[6], "yday" => $dateArray[7], "weekday" => $dateArray[8], "month" => $dateArray[9], 0 => $timestamp);
return $result;
}