О проектеГостеваяКарта сайта

Предложишь лучшее решение - получишь 100 рублей!

Вывод даты на русском языке (месяц и день недели)

Задача: вывести на сайте  дату на русском языке, например Вторник, 21 августа 2012 года.

Решение

PHP

<?php
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);
    }
}
 
echo "<b>Сегодня ". rus_date("l, j F Y")." года</b>"; // Сегодня Вторник, 21 Августа 2012 года
?>
 

Использовать функциию очень просто, достаточно вызвать ее с теми же параметрами, что и функцию date() в php.

Подробнее о функции date() можно почитать в мануале http://fi2.php.net/manual/ru/function.date.php

Источник: http://webi.ru/webi_files/rus_date.html

Демо работы функции

Результат работы функции

Сегодня Среда, 15 Августа 2018 года

Рейтинг:

Теги: PHP дата время

Если вы знаете более оригинальное, красивое, ЛУЧШЕЕ решение этой задачи, у вас есть шанс заработать 100 рублей!!! Если ваше решение будет признано лучшим, деньги ваши! Мы гарантируем выплату!

PHP

 

Последние комментарии
  • phpguru

    Функция отличная только надо бы добавить для utf8 кодировку обработать строку, а то не все понимают как сделать подобное!
    $str = iconv_strlen($str,'UTF-8');
    Я так считаю!
    13-12-2013 в 12:59:38 ID# 454 посмотреть...


  • SnipCode.ru

    Возможно Вы правы, непонятно только зачем тут iconv_strlen (((
    13-12-2013 в 13:02:55 ID# 455 посмотреть...


  • Сергей

    поторопился, так надо в конце, пардон.
        return $v['pass'];
        }
    return FALSE;
    }

    02-12-2013 в 23:33:41 ID# 377 посмотреть...


  • Сергей

    Думаю все же логичней использовать foreach, т.к. можно промахнуться с ключами, а если массив ассоциативный (я раньше делал ключ = дата и время регистрации), то вообще работать не будет.
     
    function search($array,$login)
    {
       foreach ($array as $k=>$v)
        if($v['login'] == $login){
        return $v['pass'];
        }
    }
    return FALSE;
    Так, на минутку.
    Время исполнения смысла не имеет, авторизация используется 1 раз, если юзер не параноик)))

    02-12-2013 в 23:33:41 ID# 376 посмотреть...


  • Пабло

    Как сделана ваша система рейтинга,с учетом количеством людей,проголосовавших?
    11-11-2013 в 17:04:39 ID# 207 посмотреть...


  • SnipCode.ru

    ну...вобщем то все просто: берем общую оценку, делим на кол-во проголосовавших, получаем рейтинг
    11-11-2013 в 17:07:06 ID# 208 посмотреть...


  • Пабло

    Да,просто у меня возникли проблемы,при сохранении данных,в бд и отображение количество проголосовавших людей,у вас где нибудь на сайте описано как это сделано или будет?
     
    Мне нужна система рейтинга точно такая же как у вас=)
    11-11-2013 в 17:10:56 ID# 209 посмотреть...


  • KorniloFF

    Приведенный код обрезает до первой точки в строке, в случае, если в ней будет их несколько, что не соответствует теме.
    Вот код, обрезающий до последней точки:

    PHP

    $title= preg_replace("/([\s\S.]+)\.\w+$/","$1",$str)
     

    10-11-2013 в 10:45:29 ID# 205 посмотреть...


  • Виктор

    Все отлично работает! Извините , у меня есть задача отрезать после второй и до второй запятой , что нужно поправить в первом примере?
    Спасибо!
    30-09-2013 в 20:34:07 ID# 204 посмотреть...