function format_date($date, $format = array()) {
$translation = array(
'January' => 'января' , 'February' => 'февраля', 'March' => 'марта',
'April' => 'апреля' , 'May' => 'мая' , 'June' => 'июня',
'July' => 'июля' , 'August' => 'августа', 'September' => 'сентября',
'October' => 'октября', 'November' => 'ноября' , 'December' => 'декабря',
'Jan' => 'янв', 'Feb' => 'фев', 'Mar' => 'мар', 'Apr' => 'апр',
'May' => 'май', 'Jun' => 'июн', 'Jul' => 'июл', 'Aug' => 'авг',
'Sep' => 'сен', 'Oct' => 'окт', 'Nov' => 'ноя', 'Dec' => 'дек',
'Monday' => 'понедельник', 'Tuesday' => 'вторник', 'Wednesday' => 'среда',
'Thursday' => 'четверг' , 'Friday' => 'пятница', 'Saturday' => 'суббота',
'Sunday' => 'воскресенье',
'Mon' => 'пн', 'Tue' => 'вт', 'Wed' => 'ср', 'Thu' => 'чт', 'Fri' => 'пт',
'Sat' => 'сб', 'Sun' => 'вс'
);
$defaults = array(
'yesterday' => array('вчера', 'H:i'),
'today' => array('сегодня', 'H:i'),
'tomorrow' => array('завтра', 'H:i'),
'long' => array('%s', 'j F Y', 'H:i'),
);
$format = wp_parse_args($format, $defaults);
$date_unix = is_integer($date) ? $date : strtotime($date);
if ($date_unix) {
$ymd = date('Ymd', $date_unix);
if ($ymd == date('Ymd', strtotime('yesterday'))) {
$key = 'yesterday';
} elseif ($ymd == date('Ymd')) {
$key = 'today';
} elseif ($ymd == date('Ymd', strtotime('tomorrow'))) {
$key = 'tomorrow';
} else {
$key = 'long';
}
$title = array_shift($format[$key]);
$params = array();
foreach ($format[$key] as $date_format) {
$params[] = @date($date_format, $date_unix);
}
array_unshift($params, $title);
$date_unix = call_user_func_array('sprintf', $params);
$date_unix = strtr($date_unix, $translation);
return $date_unix;
} else {
return $date;
}
}