Русские даты — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Как выводить названия месяцов по-русски? Попробуйте добавить следующий код в ~/classes/modules/cust…»)
 
Строка 27: Строка 27:
 
%custom dateru('%curr_time%')%
 
%custom dateru('%curr_time%')%
 
</source>
 
</source>
 
[[Category:FAQ]]
 
[[Category:Разработка]]
 
  
 
----
 
----

Версия 13:39, 3 марта 2010

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

Попробуйте добавить следующий код в ~/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 . '&nbsp;' . $months_ru[$month] . '&nbsp;' . $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%)%