Названия месяцев по-русски

usascha

Новичок
Названия месяцев по-русски

Я тут посмотрел по форуму, что пишут старшие товарищи и нашел, что лучше создать массив из наших названий месяцев.
Массив я сделал, а вот как из него вызвать нужный месяц из функции mktime() не знаю. Подскажите синтаксис команды:

массив - $Month_rus

$showMonth = date("F Y", mktime(0,0,0,$Month ,1,$Year));

Заранее спасибо.
 
Если тебе нужно вывести только название месяца на русском, то
PHP:
$showMonth = $Month_rus[ date( "n" ) - 1 ];
 

usascha

Новичок
Мне нужно, чтобы получались разные варианты и в том числе
следующие:
Январь 2004
01.01.2004
 

usascha

Новичок
так называется массив с русскими эквивалентами месяцев
 
usascha
ну и напиши
PHP:
$str = date( "Здесь то, что тебу нужно" ).$Month_rus[ date( "n" ) - 1 ];
echo $str;
Или я че-то не понимаю?
Для первого варианта:
PHP:
$str = $Month_rus[ date( "n" ) - 1 ]." ".date( "Y" );
для второго - обычный вызов date( "что ты хочешь увидеть?" ).

-~{}~ 12.06.04 02:08:

А зачем тебе вообще функция mktime()?
 

lucas

Guest
usascha

[m]setlocale[/m] -- прочитать комменты + поставить русскую.
 

usascha

Новичок
loshadka,
выше указанного текста идет следующее:
PHP:
if (!$Month) {
	$Month = date("m");
	}
мне нужет вывод разных месяцев: это календарь. И вывод форматируется в разных страницах, а вот названия месяцев хочется чтобы выходили из одного массива.


lucas,
setlocale я пробовал, не получается. и потом, я не уверен, что мой провайдер эту штуку поддерживает. Спросить смогу после праздников только. Да, и ответят они, возможно, не стразу
 

Фанат

oncle terrible
Команда форума
напишите ему уже готовый код
другого он не понимает.

сжальтесь над человеком, у которого отсутствует абстрактное мышление, и которы не способен решить одну задачу поаналогии с другой.
 
usascha
Да блин, если ты напишешь
PHP:
[quote]$showMonth = $Month_rus[ date( "n" ) - 1 ];[/quote]
То в переменной $showMonth будет хранится название месяца на русском языке, заметь, полученное из твоего массива и текущего месяца. А уж куда тебе нужно и на какой странице - туда сам и вставляй. Строки объединять умеешь?
Даже и не спрашивай как это работает - никто не знает, мне самому по секрету сказали...
 

xRay

Новичок
usascha
Мне нужно, чтобы получались разные варианты и в том числе следующие:
Январь 2004
01.01.2004
Идеш в ман по PHP функции date и setlocale мотриш и после этого пишеш :)

setlocale ("LC_TIME", "ru_RU");
echo date("F Y"); //Это тебе даст Январь 2004
echo date("d.m.Y"); //А это 01.01.2004
 

neko

tеam neko
подтягиваются советчики
ты проверить не удосужился хотя бы свой пример?
прежде чем советовать человеку который вообще ничего не понимает, и тем самым его еще больше запутывать...

date() не поддерживает локаль
что нужно чтобы так работать это strftime()
 

xRay

Новичок
neko
Да я вкурсе, но
у меня так работает и на Win-платформе и на Linux и все как надо.
 

neko

tеam neko
ура роботронам
вот у меня на вин неработает
и на линуксе тоже

чтож у тебя там за вин такой?
или ты тоже из книжки это вычитал и будешь сейчас к автору аппелировать?
 

usascha

Новичок
А как же все-таки обратиться к массиву? У меня есть следующий код:

PHP:
$Month_r = array(
"01" => "январь",
"02" => "февраль",
"03" => "март",
"04" => "апрель",
"05" => "май",
"06" => "июнь",
"07" => "июль",
"08" => "август",
"09" => "сентябрь",
"10" => "октябрь",
"11" => "ноябрь",
"12" => "декабрь");

if (!$Month) {
$Month = date("m");
}
...
$showMonth = date("F Y", mktime(0,0,0,$Month,1,$Year));
...
Тут выводится результат: Календарь на $showMonth

Вся проблема даже не в том как решить задачу по выводу месяца - она в общем-то решена создателем скрипта. Я взял его с архива скриптов на этом сайте.

У меня проблема в том, как составить обращение к массиву, чтобы происходила замена английского месяца на русский. Мне нужен синтаксис команды или, если необходимо, то новая команда.


Если кто-то решил задачу перевода названий месяцев по своему, опубликуйте его, пожалуйста, целиком.

===========
XRay: Я попробовал Ваш код, у меня он выдает название на английском. Сервер - FreeBSD

-~{}~ 13.06.04 13:35:

Автор оригинала: Loshadka
ну и напиши
PHP:
$str = date( "Здесь то, что тебу нужно" ).$Month_rus[ date( "n" ) - 1 ];
echo $str;
Или я че-то не понимаю?
Для первого варианта:
PHP:
$str = $Month_rus[ date( "n" ) - 1 ]." ".date( "Y" );
для второго - обычный вызов date( "что ты хочешь увидеть?" ).

А зачем тебе вообще функция mktime()?
Loshadka, Ваш вариант действительно работает!
Но появляется один нюанс: Если я указываю какой-то месяц в будущем, то даты открываются верно в соответствии с днями недели, а вот месяц остается тот же, что и был.
Например, выбран июнь. Если выбираю ноябрь, то дни меняются, а название месяца остается - июнь. Дни меняются правильно, проверял.
Полагаю, что без mktime не обойтись, а вот как ее включить в Ваш вариант - думаю в данный момент.

Еще раз спасибо за помощь.
 

sage

Новичок
PHP:
$now_month = date('m', time()); // месяц на eng
$rus_month = $Month_r[$now_month];
 
Сверху