Вывод в php date() на русском

Приветствую!

Сегодня поговорим о том, как вывести значение функции date php на русском. Достаточно актуальная задача, сам с ней столкнулся недавно.

Необходимо было вывести значение date в php месяц на русском.
Задача достаточно несложная, если немножко погуглить.

Ну а если вы помните, в прошлой статье рассматривался вопрос как вывести в CSS текст большими буквами.

Синтаксис функции date таков:

 string date ( string format [, int timestamp] ) 

Она возвращает нам время, переданное аргументом timestamp, отформатированное согласно переменной format. Если timestamp не передано, выводит текущее время.

int timestamp кто не знает — это количество секунд, прошедшее с 1 Января 1970 года.

А теперь вернемся к выводу результата функции date на русском.

Первый вариант решения.

Для этого воспользуемся найденной на просторах интернета функцией:

<?
function rus_date() {
// Перевод
 $translate = array(
 "am" => "дп",
 "pm" => "пп",
 "AM" => "ДП",
 "PM" => "ПП",
 "Monday" => "Понедельник",
 "Mon" => "Пн",
 "Tuesday" => "Вторник",
 "Tue" => "Вт",
 "Wednesday" => "Среда",
 "Wed" => "Ср",
 "Thursday" => "Четверг",
 "Thu" => "Чт",
 "Friday" => "Пятница",
 "Fri" => "Пт",
 "Saturday" => "Суббота",
 "Sat" => "Сб",
 "Sunday" => "Воскресенье",
 "Sun" => "Вс",
 "January" => "Января",
 "Jan" => "Янв",
 "February" => "Февраля",
 "Feb" => "Фев",
 "March" => "Марта",
 "Mar" => "Мар",
 "April" => "Апреля",
 "Apr" => "Апр",
 "May" => "Мая",
 "May" => "Мая",
 "June" => "Июня",
 "Jun" => "Июн",
 "July" => "Июля",
 "Jul" => "Июл",
 "August" => "Августа",
 "Aug" => "Авг",
 "September" => "Сентября",
 "Sep" => "Сен",
 "October" => "Октября",
 "Oct" => "Окт",
 "November" => "Ноября",
 "Nov" => "Ноя",
 "December" => "Декабря",
 "Dec" => "Дек",
 "st" => "ое",
 "nd" => "ое",
 "rd" => "е",
 "th" => "ое"
 );
 // если передали дату, то переводим ее
 if (func_num_args() > 1) {
 $timestamp = func_get_arg(1);
 return strtr(date(func_get_arg(0), $timestamp), $translate);
 } else {
// иначе текущую дату
 return strtr(date(func_get_arg(0)), $translate);
 }
 }
?>

Синтаксис использования функции такой-же как и обычной date().
Пример

 rus_date("j F Y H:i ", strtotime($result['create_date'])  

получим

 20 Декабря 2012 20:13 
Второй вариант вывода даты в php по русски.

В нем мы устанавливаем русую локаль для php, и он автоматом выводит дату по русски.
Но срабатывать может не всегда.

<?php
/* Установка русской локали */
setlocale(LC_ALL, 'rus');

/* выводит: День недели: понедельник, Месяц: Январь, Год: 2010, 11/01/2010 */
echo strftime("День недели: %A, Месяц: %B, Год: %Y, %d/%m/%Y", time());
?>
  • ruslan

    Написано человеком дупля не режущем в CMS. Об этом говорит то как он употребляет термины: компонент virtuemart обзывает плагином и т.д.