Php дата название месяца

PHP: русские месяцы в функции date()

Выражение date( ‘n’ ) возвращает порядковый номер месяца в году.

Массивы с названиями русских месяцев

$months = array( 1 => 'Январь' , 'Февраль' , 'Март' , 'Апрель' , 'Май' , 'Июнь' , 'Июль' , 'Август' , 'Сентябрь' , 'Октябрь' , 'Ноябрь' , 'Декабрь' ); $months = array( 1 => 'январь' , 'февраль' , 'март' , 'апрель' , 'май' , 'июнь' , 'июль' , 'август' , 'сентябрь' , 'октябрь' , 'ноябрь' , 'декабрь' );
$months = array( 1 => 'Января' , 'Февраля' , 'Марта' , 'Апреля' , 'Мая' , 'Июня' , 'Июля' , 'Августа' , 'Сентября' , 'Октября' , 'Ноября' , 'Декабря' ); $months = array( 1 => 'января' , 'февраля' , 'марта' , 'апреля' , 'мая' , 'июня' , 'июля' , 'августа' , 'сентября' , 'октября' , 'ноября' , 'декабря' );
$months = array( 1 => 'Январю' , 'Февралю' , 'Марту' , 'Апрелю' , 'Маю' , 'Июню' , 'Июлю' , 'Августу' , 'Сентябрю' , 'Октябрю' , 'Ноябрю' , 'Декабрю' ); $months = array( 1 => 'январю' , 'февралю' , 'марту' , 'апрелю' , 'маю' , 'июню' , 'июлю' , 'августу' , 'сентябрю' , 'октябрю' , 'ноябрю' , 'декабрю' );
$months = array( 1 => 'Январём' , 'Февралём' , 'Мартом' , 'Апрелем' , 'Маем' , 'Июнем' , 'Июлем' , 'Августом' , 'Сентябрём' , 'Октябрём' , 'Ноябрём' , 'Декабрём' ); $months = array( 1 => 'январём' , 'февралём' , 'мартом' , 'апрелем' , 'маем' , 'июнем' , 'июлем' , 'августом' , 'сентябрём' , 'октябрём' , 'ноябрём' , 'декабрём' );
$months = array( 1 => 'Январе' , 'Феврале' , 'Марте' , 'Апреле' , 'Мае' , 'Июне' , 'Июле' , 'Августе' , 'Сентябре' , 'Октябре' , 'Ноябре' , 'Декабре' ); $months = array( 1 => 'январе' , 'феврале' , 'марте' , 'апреле' , 'мае' , 'июне' , 'июле' , 'августе' , 'сентябре' , 'октябре' , 'ноябре' , 'декабре' );

Источник

Php дата название месяца

Иногда на страницах сайта появляется необходимость вывести не просто цифровую дату типа 23.07.2015, а сразу русскую дату, в которой месяц будет написан русским названием. И будет она выглядеть уже вот так 23 июля 2015.

Вы спросите: «Зачем это нужно?». А нужно это в первую очередь для лучшего визуального восприятия даты, так как первый уже стандартный для многих сайтов формат даты из одних только цифр с точками воспринимается намного хуже, чем когда день и год разделены словом-названием месяца. В этом случае можно намного быстрее понять, от какого эта дата месяца и года.

Но, что самое интересное, стандартная и довольно полезная дата-временная функция date() может выводить название месяца только на английском языке (от January до December), то есть воспользоваться параметром F данной функции нам не подойдет.

Тут нужен другой подход, заключающийся в подстановке заместо численного значения месяца (от 1 до 12) русского слова-обозначения этого месяца. На словах звучит сложновато, поэтому предлагаю в качестве примера вывести таким способом текущую дату :

//список месяцев с названиями для замены $_monthsList = array(".01." => "января", ".02." => "февраля", ".03." => "марта", ".04." => "апреля", ".05." => "мая", ".06." => "июня", ".07." => "июля", ".08." => "августа", ".09." => "сентября", ".10." => "октября", ".11." => "ноября", ".12." => "декабря"); //текущая дата $currentDate = date("d.m.Y"); //переменная $currentDate теперь хранит текущую дату в формате 22.07.2015 //но так как наша задача - вывод русской даты, //заменяем число месяца на название: $_mD = date(".m."); //для замены $currentDate = str_replace($_mD, " ".$_monthsList[$_mD]." ", $currentDate); //теперь в переменной $currentDate хранится дата в формате 22 июня 2015

Вывести один лишь только текущий месяц на русском языке еще проще:

$_monthsList = array( "1"=>"Январь","2"=>"Февраль","3"=>"Март", "4"=>"Апрель","5"=>"Май", "6"=>"Июнь", "7"=>"Июль","8"=>"Август","9"=>"Сентябрь", "10"=>"Октябрь","11"=>"Ноябрь","12"=>"Декабрь"); $month = $_monthsList[date("n")]; echo $month; //выведет, например, для 7 месяца "Июль"

Ну и для того, что бы было под рукой (это же все-таки заметка), рассмотрим еще несколько реальных примеров, с которыми, обычно, и приходится сталкиваться на практике. Для удобства сделаем их подзаголовками.

Читайте также:  Css работа с div

Вывод русского названия месяца в дате обычного формата, например 12.03.2015

Данный случай в принципе почти одинаков с описанным чуть выше, разница только в том, что $currentDate будет изначально задано по коду ранее. А выглядеть это будет так:

//текущая дата $currentDate = '12.03.2015'; //может быть присвоена из другой переменной //список месяцев с названиями для замены $_monthsList = array( ".01." => "января", ".02." => "февраля", ".03." => "марта", ".04." => "апреля", ".05." => "мая", ".06." => "июня", ".07." => "июля", ".08." => "августа", ".09." => "сентября", ".10." => "октября", ".11." => "ноября", ".12." => "декабря" ); //Наша задача - вывод русской даты, //поэтому заменяем число месяца на название: $_mD = date(".m.", strtotime($currentDate)); //для замены $currentDate = str_replace($_mD, " ".$_monthsList[$_mD]." ", $currentDate); //теперь в переменной $currentDate хранится дата в формате 12 марта 2015

В итоге, после небольших манипуляций, мы получаем правильную дату на выходе.

Вывод даты на русском языке из unix timestamp формата, например 1437556706

Обработка такой даты является самой интересной, так как тут придется скомбинировать приемы изменения текущей даты и какой-то определенной даты в цифровом формате. А именно: нам нужно вначале получить дату из метки времени (unix timestamp), а потом в этой дате заменить число месяца на русское название месяца. Сделать это можно вот так:

//текущая дата в формате Unix TimeStamp $_timestampDate = '1437556706'; //может быть присвоена из другой переменной //переводим в нормальную дату $currentDate = date("d.m.Y", $_timestampDate); //из 1437556706 в 22.07.2015 //список месяцев с названиями для замены $_monthsList = array( ".01." => "января", ".02." => "февраля", ".03." => "марта", ".04." => "апреля", ".05." => "мая", ".06." => "июня", ".07." => "июля", ".08." => "августа", ".09." => "сентября", ".10." => "октября", ".11." => "ноября", ".12." => "декабря" ); //Наша задача - вывод русской даты, //поэтому заменяем число месяца на название: $_mD = date(".m.", $_timestampDate); //для замены $currentDate = str_replace($_mD, " ".$_monthsList[$_mD]." ", $currentDate); //теперь в переменной $currentDate хранится дата в формате 22 июня 2015

В итоге мы получили нужный нам формат даты из метки времени. Все как и хотели.

Читайте также:  What color is java black

Кстати, при работе с timestamp мне не плохо помогает мой же веб-инструмент Unix TimeStamp конвертер. Это бесплатная штука, пользуйтесь на здоровье. Там так же можно подробнее узнать про эту самую Unix метку время. Все для Вас =)

Виталий Жуков 28.11.2019

Источник

Php дата название месяца

На этой странице описаны форматы даты в BNF-подобном синтаксисе, которые понимает парсер функций: DateTimeImmutable , DateTime , date_create() , date_create_immutable() и strtotime() .

Чтобы отформатировать объекты DateTimeImmutable и DateTime , обратитесь к документации метода DateTimeInterface::format() .

Используемые символы

Описание Формат Примеры
daysuf (суффикс порядкового числительного дня месяца) «st» | «nd» | «rd» | «th»
dd (день месяца без ведущих нулей) (2?7 | «3»[01]) daysuf ? «7th», «22nd», «31»
DD (день месяца, 2 цифры с ведущим нулём) «0» 9 | 19 | «3» [01] «07», «31»
m (полное или сокращённое название месяца) ‘january’ | ‘february’ | ‘march’ | ‘april’ | ‘may’ | ‘june’ | ‘july’ | ‘august’ | ‘september’ | ‘october’ | ‘november’ | ‘december’ | ‘jan’ | ‘feb’ | ‘mar’ | ‘apr’ | ‘may’ | ‘jun’ | ‘jul’ | ‘aug’ | ‘sep’ | ‘sept’ | ‘oct’ | ‘nov’ | ‘dec’ | «I» | «II» | «III» | «IV» | «V» | «VI» | «VII» | «VIII» | «IX» | «X» | «XI» | «XII»
M (сокращённое название месяца) ‘jan’ | ‘feb’ | ‘mar’ | ‘apr’ | ‘may’ | ‘jun’ | ‘jul’ | ‘aug’ | ‘sep’ | ‘sept’ | ‘oct’ | ‘nov’ | ‘dec’
mm (порядковый номер месяца) «0»? 9 | «1»2 «0», «04», «7», «12»
MM (порядковый номер месяца, 2 цифры с ведущим нулём) «0» 3 | «1»1 «00», «04», «07», «12»
y (порядковый номер года) 2 «00», «78», «08», «8», «2008»
yy (порядковый номер года, 2 цифры) 7 «00», «08», «78»
YY (порядковый номер года, 4 цифры) 7 «2000», «2008», «1978»
YYY 6 «81412», «20192»
Региональные нотации
Описание Формат Примеры
Месяц и день в американской нотации mm «/» dd «5/12», «10/27»
Месяц, день и год в американской нотации mm «/» dd «/» y «12/22/78», «1/17/2006», «1/17/6»
4 цифры года, месяц и день со слешем-разделителем YY «/» mm «/» dd «2008/6/30», «1978/12/22»
4 цифры года и месяц (GNU) YY «-» mm «2008-6», «2008-06», «1978-12»
Год, месяц и день с дефисом-разделителем y «-» mm «-» dd «2008-6-30», «78-12-22», «8-6-21»
День, месяц и 4 цифры года с разделителем в виде точки, символа табуляции или дефиса dd [.\t-] mm [.-] YY «30-6-2008», «22.12.1978»
День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции dd [.\t] mm «.» yy «30.6.08», «22.12.78»
День, название месяца и год dd ([ \t.-])* m ([ \t.-])* y «30-June 2008», «22DEC78», «14 III 1879»
Название месяца и 4 цифры года (день месяца сбрасывается на 1) m ([ \t.-])* YY «June 2008», «DEC1978», «March 1879»
4 цифры года и название месяца (день месяца сбрасывается на 1) YY ([ \t.-])* m «2008 June», «1978-XII», «1879.MArCH»
Название месяца, день и год m ([ .\t-])* dd [,.stndrh\t ]+ y «July 1st, 2008», «April 17, 1790», «May.9,78»
Название месяца и день m ([ .\t-])* dd [,.stndrh\t ]* «July 1st,», «Apr 17», «May.9»
День и название месяца dd ([ .\t-])* m «1 July», «17 Apr», «9.May»
Сокращённое название месяца, день и год M «-» DD «-» y «May-09-78», «Apr-17-1790»
Год, сокращённое название месяца и день y «-» M «-» DD «78-Dec-22», «1814-MAY-17»
Только год YY «1978», «2008»
Год (расширенный, 5-19 цифр со знаком) [+-] YYY «-81120», «+20192»
Только название месяца m «March», «jun», «DEC»
Нотации ISO8601
Описание Формат Примеры
8 цифр (год, месяц и день) YY MM DD «15810726», «19780417», «18140517»
8 цифр (год, месяц и день) со слешем-разделителем YY «/» MM «/» DD «2008/06/30», «1978/12/22»
2 цифры года, месяц и день с дефисом-разделителем yy «-» MM «-» DD «08-06-30», «78-12-22»
4 цифры года с необязательным знаком, месяц и день [+-]? YY «-» MM «-» DD «-0002-07-26», «+1978-04-17», «1814-05-17»
Пятизначный год с обязательным знаком, месяцем и днём [+-] YYY «-» MM «-» DD «-81120-02-26», «+20192-04-17»

Замечание:

Форматы y и yy для годов меньше 100 обрабатываются в исключительных случаях при использовании символов y или yy . Если год попадает в диапазон 0-69 (включительно), то к нему добавляется 2000. Если же год принадлежит диапазону 70-99 (включительно), то к нему добавляется 1900. Это означает, что дата «00-01-01» интерпретируется как «2000-01-01».

Замечание:

Формат «День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции» ( dd [.\t] mm «.» yy ) работает только для годов из диапазона 61-99 (включительно). За пределами этого диапазона отдаётся предпочтение формату времени » HH [.:] MM [.:] SS «.

Замечание:

Формат «Только год» задействуется только в случае, если строка времени была найдена. В противном случае отдаётся предпочтению формату HH MM .

Возможен выход за границы диапазона форматов dd и DD . День месяца с порядковым номером 0 подразумевает последний день предыдущего месяца в результате выхода за границы диапазона. Согласно написанному, «2008-08-00» равносильно «2008-07-31», а «2008-06-31» соответствует «2008-07-01» (в июне всего 30 дней).

Обратите внимание, что диапазон дней ограничен 0-31, как указано выше регулярным выражением. Так что, например, «2008-06-32» — некорректная дата.

Также допускается выход за границы диапазона для форматов mm и MM со значением 0. Значение месяца 0 соответствует декабрю предыдущего года. Например, дата «2008-00-22» равносильна «2007-12-22».

Если учесть два предыдущих замечания и выход за границы диапазона дней и месяцев, получим следующее: дата «2008-00-00» в первую очередь преобразуется в «2007-12-00», которая будет преобразована в «2007-11-30». То же случится с датой «0000-00-00», которая будет преобразована к «-0001-11-30» (минус первый год в календаре ISO 8601 и 2 год до н.э. по григорианскому календарю).

User Contributed Notes

Источник

Оцените статью