Русские даты

Материал из Umicms
Версия от 09:17, 21 февраля 2010; Waclaw (обсуждение | вклад) (Новая страница: «Как выводить названия месяцов по-русски? Попробуйте добавить следующий код в ~/classes/modules/cust…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Как выводить названия месяцов по-русски?

Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки //TODO: Write your own macroses here

  public function dateru($time) {
    $day = date('d', $time);
    $month = date('n', $time);
    $year = date('Y', $time);

    // Проверка существования месяца
    if (!checkdate($month, 1, $year)){
        throw new publicException("Проверьте порядок ввода даты.");
    }
    
    $months_ru = array(1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
    $date_ru = $day . ' ' . $months_ru[$month] . ' ' . $year . ' года.';
    return $date_ru;  
  }

Регистрировать его нигде не нужно.

Пример использования:

%custom dateru('%curr_time%')%

Еще интересная работа с датой, очень полезна при работе с опубликованными статьями, а именно: после размещения статьи и выводе даты на станицу происходит замена - если статья размешена сегодня то при выводе будет написано СЕГОДНЯ, через день выведется ВЧЕРА, а еще через день ПОЗАВЧЕРА, еще через день просто будет указана дата.

        public function dateconvert($timestamp) {
          if ( !is_numeric( $timestamp ) ){return "";}
          $currentdate = date( "d.m.Y", $timestamp );
          if ($currentdate ==date("d.m.Y")){ $currentdate= "Сегодня";}
          if ($currentdate ==date("d.m.Y")-1){ $currentdate= "Вчера";}
          if ($currentdate ==date("d.m.Y")-2){ $currentdate= "Позавчера";}
        return $currentdate;
        }

Пример использования:

%custom dateconvert(%publish_time%)%