Формат даты php месяц на русском
Иногда на страницах сайта появляется необходимость вывести не просто цифровую дату типа 23.07.2015, а сразу русскую дату, в которой месяц будет написан русским названием. И будет она выглядеть уже вот так 23 июля 2015.
Вы спросите: «Зачем это нужно?». А нужно это в первую очередь для лучшего визуального восприятия даты, так как первый уже стандартный для многих сайтов формат даты из одних только цифр с точками воспринимается намного хуже, чем когда день и год разделены словом-названием месяца. В этом случае можно намного быстрее понять, от какого эта дата месяца и года.
Но, что самое интересное, стандартная и довольно полезная дата-временная функция date() может выводить название месяца только на английском языке (от January до December), то есть воспользоваться параметром F данной функции нам не подойдет.
Тут нужен другой подход, заключающийся в подстановке заместо численного значения месяца (от 1 до 12) русского слова-обозначения этого месяца. На словах звучит сложновато, поэтому предлагаю в качестве примера вывести таким способом текущую дату :
Вывести один лишь только текущий месяц на русском языке еще проще:
Ну и для того, что бы было под рукой (это же все-таки заметка), рассмотрим еще несколько реальных примеров, с которыми, обычно, и приходится сталкиваться на практике. Для удобства сделаем их подзаголовками.
Вывод русского названия месяца в дате обычного формата, например 12.03.2015
В итоге, после небольших манипуляций, мы получаем правильную дату на выходе.
Вывод даты на русском языке из unix timestamp формата, например 1437556706
Обработка такой даты является самой интересной, так как тут придется скомбинировать приемы изменения текущей даты и какой-то определенной даты в цифровом формате. А именно: нам нужно вначале получить дату из метки времени (unix timestamp), а потом в этой дате заменить число месяца на русское название месяца. Сделать это можно вот так:
В итоге мы получили нужный нам формат даты из метки времени. Все как и хотели.
Кстати, при работе с timestamp мне не плохо помогает мой же веб-инструмент Unix TimeStamp конвертер. Это бесплатная штука, пользуйтесь на здоровье. Там так же можно подробнее узнать про эту самую Unix метку время. Все для Вас =)
PHP date() — вывод русского месяца

В итоге я быстренько накидал функцию, которая заменит мне стандартную функцию для вывода форматированной даты и будет выводить русский месяц.
Привожу код функции:
Пример работы обычной команды data(«d M Y»);
Выведет результат: 01 Mar 2012
Пример работы новой функции rdate(«d M Y»);
Выведет результат: 01 Марта 2012
Во всем остальном новая функция rdate() работает точно также как и стандартная функция. Для вывода месяца в форматированной дате используется латинский символ «M». Так же возможен второй параметр функции, для указания метки времени — timestamp.
Хороший пост на данную тему, о выводе правильной даты в PHP, можно прочитать в блоге начинающего админа и сеошника. К слову сказать тема раскрыта достаточно полно, благодаря чему данную задачу получится решить с максимальной отдачей.
Похожие записи
6 комментариев to “PHP date() — вывод русского месяца”
Спасибо — только начал гуглить как решить вопрос, нашёл какой-то колоссальный класс на php.net, а это — простое и красивое решение — спасибо )
Немного модифицировал функцию и теперь можно выводить день недели на русском языке
Внес поправки:
$MN=array(«Воскресенье»,«Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота»);
У буржуев воскресенье — начало недели.
>
но технически может работать и без проверки условия, если символов не будет, замены не произойдет
Вывести на PHP месяц и день недели на русском
Довольно часто приходится сталкиваться с выводом названий месяцев и дней недели по-русски. При чем в различных вариантах, к примеру с полным названием или сокращенным, с большой буквы или с маленькой.
Можно воспользоваться одним из этих 2 вариантов для вывода даты на русском. Мне больше нравится тот, где больше кода, так как в нем можно изменить текстовые названия как угодно под свою задачу.
С помощью функции setlocale()
Для корректной работы в системе должна быть установлена соответствующая локаль. Из плюсов: несколько строк кода. Из минусов: сложнее переделать названия под себя.
С помощью готового решения
Суть решения в том, что название выводится по номеру ключа в массиве, совпадающего с порядковым номером месяца или днём недели. Данный пример можно оформить в функции для множественного использования на странице. Из плюсов: названия можно переделать как вам угодно. Из минусов: больше строк кода, чем в примере выше.
В этом руководстве создадим чат-бота ВКонтакте, которого можно добавить не только в сообщения группы, но и в групповую беседу. Бот может прослушивать все сообщения в беседе, и если в каком-то из них будет содержаться определенное слово, фраза или часть текста, Читать далее
У инстраграма нет готового виджета для вывода постов на сайте. В прошлой статье мы рассматривали как создать Instagram виджет для сайта с помощью конструктора. Это самый простой и быстрый способ, и на мой взгляд самый лучший. Единственный его минус, как Читать далее
Абсолютно любой предмет из нашей жизни мы можем описать по его характеристикам и состоянию, а так же воздействовать на это состояние. Например, ваш автомобиль имеет определенный цвет, марку, двигатель и т.д. Кроме того он может ехать, стоять, набирать или сбавлять Читать далее
Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо удалить элемент массива именно по значению, то тут возникают небольшие сложности. Вроде бы банальная задача, но придется воспользоваться небольшой хитростью. В этой статье рассмотрим как Читать далее
В этой статье рассмотрим как создать простого чат-бота для Viber, который будет принимать и отправлять сообщения в чат. Шаг 1 Итак, для начала необходимо зарегистрироваться в сервисе Viber Admin Panel по этой ссылке. Шаг 2 Создаём бота. Для этого заполняем Читать далее
Дата и время в PHP
В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.
PHP-функции для работы с датой и временем
PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:
time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:
| seconds | Секунды (0-59) |
| minutes | Минуты (0-59) |
| hours | Часы (0-23) |
| mday | День месяца (1-31) |
| wday | День недели (0-6), начиная с воскресенья |
| mon | Месяц (1-12) |
| year | Год |
| yday | День года (0-365) |
| weekday | Название дня недели (например, Friday) |
| month | Название месяца (например, January) |
| 0 | Абсолютное время |
Пример 1
РЕЗУЛЬТАТ ПРИМЕРА 1:
seconds = 49
minutes = 59
hours = 6
mday = 21
wday = 2
mon = 9
year = 2021
yday = 263
weekday = Tuesday
month = September
0 = 1632196789
Сегодня: 21.9.2021
date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:
Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.
Пример 2
РЕЗУЛЬТАТ ПРИМЕРА 2:
Сегодня 21.09.21 06:59
часы
минуты
секунды
месяц
день месяца
год
Пример 3
РЕЗУЛЬТАТ ПРИМЕРА 3:
22 January 1971, at 1.30 pm, Friday
Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.
Пример 4
РЕЗУЛЬТАТ ПРИМЕРА 4:
Tuesday 21 September 2021 06:59
Сегодня Tuesday 21 September 2021 06:59:49
MSK
Формат даты php месяц на русском
(PHP 4, PHP 5, PHP 7, PHP 8)
date — Форматирует вывод системной даты/времени
Описание
Список параметров
Возвращаемые значения
Ошибки
Список изменений
| Версия | Описание |
|---|---|
| 8.0.0 | timestamp теперь допускает значение null. |
Примеры
Пример #1 Примеры использования функции date()
// установка часового пояса по умолчанию.
date_default_timezone_set ( ‘UTC’ );
// выведет примерно следующее: Monday
echo date ( «l» );
// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );
/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date ( DATE_RFC822 );
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
Пример #3 Пример совместного использования функций date() и mktime()
Данный способ более надёжен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.
Пример #4 Форматирование с использованием date()
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся в часовом поясе Mountain Standard Time (MST)
$today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
$today = date ( «m.d.y» ); // 03.10.01
$today = date ( «j, n, Y» ); // 10, 3, 2001
$today = date ( «Ymd» ); // 20010310
$today = date ( ‘h-i-s, j-m-y, it is w Day’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // it is the 10th day.
$today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>
Примечания
Смотрите также
User Contributed Notes 20 notes
Things to be aware of when using week numbers with years.
Conclusion:
if using ‘W’ for the week number use ‘o’ for the year.
In order to define leap year you must considre not only that year can be divide by 4!
The correct alghoritm is:
if (year is not divisible by 4) then (it is a common year)
else if (year is not divisible by 100) then (it is a leap year)
else if (year is not divisible by 400) then (it is a common year)
else (it is a leap year)
So the code should look like this:
For Microseconds, we can get by following:
echo date(‘Ymd His’.substr((string)microtime(), 1, 8).’ e’);
FYI: there’s a list of constants with predefined formats on the DateTime object, for example instead of outputting ISO 8601 dates with:
echo date ( ‘Y-m-d\TH:i:sO’ );
?>
You can use
echo date ( DateTime :: ISO8601 );
?>
instead, which is much easier to read.
this how you make an HTML5 tag correctly
It’s common for us to overthink the complexity of date/time calculations and underthink the power and flexibility of PHP’s built-in functions. Consider http://php.net/manual/en/function.date.php#108613
date() will format a time-zone agnostic timestamp according to the default timezone set with date_default_timezone_set(. ). Local time. If you want to output as UTC time use:
$tz = date_default_timezone_get ();
date_default_timezone_set ( ‘UTC’ );
For HTML5 datetime-local HTML input controls (http://www.w3.org/TR/html-markup/input.datetime-local.html) use format example: 1996-12-19T16:39:57
To generate this, escape the ‘T’, as shown below:
If timestamp is a string, date converts it to an integer in a possibly unexpected way:
The example below formats today’s date in three different ways:
The following function will return the date (on the Gregorian calendar) for Orthodox Easter (Pascha). Note that incorrect results will be returned for years less than 1601 or greater than 2399. This is because the Julian calendar (from which the Easter date is calculated) deviates from the Gregorian by one day for each century-year that is NOT a leap-year, i.e. the century is divisible by 4 but not by 10. (In the old Julian reckoning, EVERY 4th year was a leap-year.)
This algorithm was first proposed by the mathematician/physicist Gauss. Its complexity derives from the fact that the calculation is based on a combination of solar and lunar calendars.
At least in PHP 5.5.38 date(‘j.n.Y’, 2222222222) gives a result of 2.6.2040.
So date is not longer limited to the minimum and maximum values for a 32-bit signed integer as timestamp.
Prior to PHP 5.6.23, Relative Formats for the start of the week aligned with PHP’s (0=Sunday,6=Saturday). Since 5.6.23, Relative Formats for the start of the week align with ISO-8601 (1=Monday,7=Sunday). (http://php.net/manual/en/datetime.formats.relative.php)
This can produce different, and seemingly incorrect, results depending on your PHP version and your choice of ‘w’ or ‘N’ for the Numeric representation of the day of the week:
Prior to PHP 5.6.23, this results in:
Today is Sun 2 Oct 2016, day 0 of this week. Day 1 of next week is 10 Oct 2016
Today is Sun 2 Oct 2016, day 7 of this week. Day 1 of next week is 10 Oct 2016
Since PHP 5.6.23, this results in:
Today is Sun 2 Oct 2016, day 0 of this week. Day 1 of next week is 03 Oct 2016
Today is Sun 2 Oct 2016, day 7 of this week. Day 1 of next week is 03 Oct 2016
I’ve tested it pretty strenuously but date arithmetic is complicated and there’s always the possibility I missed something, so please feel free to check my math.
The function could certainly be made much more powerful, to allow you to set different days to be ignored (e.g. «skip all Fridays and Saturdays but include Sundays») or to set up dates that should always be skipped (e.g. «skip July 4th in any year, skip the first Monday in September in any year»). But that’s a project for another time.
$start = strtotime ( «1 January 2010» );
$end = strtotime ( «13 December 2010» );
// Add as many holidays as desired.
$holidays = array();
$holidays [] = «4 July 2010» ; // Falls on a Sunday; doesn’t affect count
$holidays [] = «6 September 2010» ; // Falls on a Monday; reduces count by one
?>
Or, if you just want to know how many work days there are in any given year, here’s a quick function for that one:







