Вывод в 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()); ?>