полное название месяца в текущей локали

alexhemp

Новичок
полное название месяца в текущей локали

Итак, проявляем принципиальность и правильный подход, пишем

setlocale(LC_ALL, 'ru_RU.1251');
echo strftime('%B', time());

Получаем "октября" а хочется "октябрь"

в файле /usr/share/locale/ru_RU.CP1251/LC_TIME есть в конце строки с нормальными названиями месяцев...

чтение мануала не помогло.

Варианты запихнуть названия месяцев в массив не предлагать, откуда я знаю какая будет локаль потом - может японская.

-~{}~ 26.10.05 22:52:

man strftime помог

FreeBSD 4.11

%E* %O*
POSIX locale extensions. The sequences %Ec %EC %Ex %EX %Ey %EY %Od
%Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy are supposed to
provide alternate representations.

Additionly %OB implemented to represent alternative months names
(used standalone, without day mentioned).
работает echo strftime('%OB', time());

Плиз, посмотрите под разными системами - работает-ли? Интересует свежий Linux, Windows...
 

Royal Flash

-=MaestrO=-
Под FreeBSD 5.x PHP 4.3.11 - все ок.
WinXP PHP 5.05 - вариант strftime('%OB', time()); Отображает один левый символ, strftime('%B', time()); - October.
 

alexhemp

Новичок
нужно сделать setlocale чтобы увидеть разницу. Для аглицкого-то ее нет...
 

baev

‹°°¬•
Команда форума
WinXP PHP 4.3.9
strftime('%OB', time()); -- одна буква "B"

strftime('%B', time()); - "Октябрь".
 

alexhemp

Новичок
baev

Спасибо! Примерно понятно...

Проверил бы кто с Linux а то у меня везде фрюха.
 

alexhemp

Новичок
baev

%OB попробуй а не %0B

А есть возможность man strftime глянуть в данной системе?
 
Сверху