Даты на человеческом русском

Главные вкладки

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 16 февраля 2009 в 22:00

Вот такой фигней приходится маяться.

function russian_normal_date($timestamp, $tricks = false, $capi = false){
    $monthes = array(
        'января', 'февраля', 'марта',
        'апреля', 'мая', 'июня',
        'июля', 'августа', 'сентября',
        'октября', 'ноября', 'декабря'
    );
    $dt = '';
    if($tricks){
        $d = format_date($timestamp, 'custom', 'Ymd');
        $t = time();
        $dtd = format_date($t, 'custom', 'Ymd');
        $dtmr = format_date($t + 86400, 'custom', 'Ymd');
        $dyst = format_date($t - 86400, 'custom', 'Ymd');
        if($d == $dtd) $dt .= $capi ? 'Сегодня, ' : 'сегодня, ';
        else if($d == $dyst) $dt .= $capi ? 'Вчера, ' : 'вчера, ';
        else if($d == $dtmr) $dt .= $capi ? 'Завтра, ' : 'завтра, ';
    }
    $dt .= sprintf(
        format_date($timestamp, 'custom', 'j %\s, G:i'),
        $monthes[format_date($timestamp, 'custom', 'n') - 1]
    );
    return $dt;
}

А как вы решате подобные проблемы если надо "очеловечить" сайт?

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 17 февраля 2009 в 19:08

"volocuga" wrote:
Ilya1st: А куда это(код) нужно вставлять?

ну я завернул все это в theme_ и в модулях если надо вызываю ее(проверяя присутсвие темизации естессно) ну + в теме в $submitted переопределяю переменные ее вызовом в hook_variables()

Аватар пользователя seaji seaji 17 февраля 2009 в 21:29

"Ilya1st" wrote:
нам иногда надо "февраль" а не "февраля"

На мой беглый взгляд в Вашем варианте как раз месяца "февраль" и нету.
Поэтому он и равнозначен переводу.
Или я чего пропустил?

Аватар пользователя volocuga volocuga 19 февраля 2009 в 1:27

"Ilya1st" wrote:
ну я завернул все это в theme_ и в модулях если надо вызываю ее(проверяя присутсвие темизации естессно) ну + в теме в $submitted переопределяю переменные ее вызовом в hook_variables()

Понятно...мне это китайская грамота