The value MON_(1-12) has special behavior in Russian locale: it returns declinated month names, that can be used as part of a date string, but not on their own.
For instance instead of "Январь" (the proper nominative form) it returns "Января" (form declinated for use in dates).
There seems to be no way to get the nominative form of the month name - one has to use translations instead.
nl_langinfo
説明
string nl_langinfo ( int item )nl_langinfo() はロケールカテゴリの独立した要素にアクセスするために使用されます。 localeconv() と異なり、全ての要素を返します。 nl_langinfo() はいかなる特定要素も取得可能です。
もし item が有効でない場合、 FALSE が返されます。
item は要素の整数値、もしくは要素の定数名です。 以下は、使用される item に対する定数名と説明の一覧です。 これらの定数のいくつかは特定のロケールに対して未定義、 もしくは値がありません。
表 1. nl_langinfo 定数
| 定数 | 説明 |
|---|---|
| LC_TIME カテゴリの定数 | |
| ABDAY_(1-7) | 1 週間中の n 番目の曜日名の略式表記 |
| DAY_(1-7) | 1 週間中の n 番目の曜日名 (DAY_1 = 日曜日) |
| ABMON_(1-12) | n 番目の月の名前の略式表記 |
| MON_(1-12) | n 番目の月の名前前 |
| AM_STR | 午前を表す文字列 |
| PM_STR | 午後を表す文字列 |
| D_T_FMT | strftime() で日時を表すためのフォーマット文字列として使用することが可能な文字列 |
| D_FMT | strftime() で日付を表すためのフォーマット文字列として使用することが可能な文字列 |
| T_FMT | strftime() で時刻を表すためのフォーマット文字列として使用することが可能な文字列 |
| T_FMT_AMPM | strftime() でAM/PM付き 12 時間表記を表すためのフォーマット文字列として 使用することが可能な文字列 |
| ERA | ロケール固有の元号付きフォーマット |
| ERA_YEAR | ロケール固有の元号付きフォーマットでの年 |
| ERA_D_T_FMT | ロケール固有の元号付きフォーマットでの日時 (strftime() で使用可能な文字列) |
| ERA_D_FMT | ロケール固有の元号付きフォーマットでの日付 (strftime() で使用可能な文字列) |
| ERA_T_FMT | ロケール固有の元号付きフォーマットでの時刻 (strftime() で使用可能な文字列) |
| LC_MONETARY カテゴリの定数 | |
| INT_CURR_SYMBOL | 国際通貨記号 |
| CURRENCY_SYMBOL | 地域通貨記号 |
| CRNCYSTR | CURRENCY_SYMBOL と同じ値 |
| MON_DECIMAL_POINT | 小数点文字 |
| MON_THOUSANDS_SEP | 1000 単位桁区切り (3 桁ごとのグループ化) の区切り文字 |
| MON_GROUPING | 'grouping' と同じ |
| POSITIVE_SIGN | 正値の表示に使用される記号 |
| NEGATIVE_SIGN | 負値の表示に使用される記号 |
| INT_FRAC_DIGITS | 国際的な方法で表現する際の小数点以下の桁数 |
| FRAC_DIGITS | 地域的な方法で表現する際の小数点以下の桁数 |
| P_CS_PRECEDES | CURRENCY_SYMBOL の前に正値がある場合 1 を返す |
| P_SEP_BY_SPACE | CURRENCY_SYMBOL と正値がスペースで区切られる場合、 1 を返します |
| N_CS_PRECEDES | CURRENCY_SYMBOL の前に負値がある場合 1 を返す |
| N_SEP_BY_SPACE | CURRENCY_SYMBOL と負値がスペースで区切られる場合、 1 を返します |
| P_SIGN_POSN |
|
| N_SIGN_POSN | |
| LC_NUMERIC カテゴリの定数 | |
| DECIMAL_POINT | 小数点文字 |
| RADIXCHAR | DECIMAL_POINT と同じ値 |
| THOUSANDS_SEP | 1000 単位桁区切り (3 桁ごとのグループ化) の区切り文字 |
| THOUSEP | THOUSANDS_SEP と同じ値 |
| GROUPING | |
| LC_MESSAGES カテゴリの定数 | |
| YESEXPR | 'はい' の入力にマッチさせるための正規表現 |
| NOEXPR | 'いいえ' の入力にマッチさせるための正規表現 |
| YESSTR | 'はい' のための出力文字列 |
| NOSTR | 'いいえ' のための出力文字列 |
| LC_CTYPE カテゴリの定数 | |
| CODESET | 文字エンコーディング名の文字列を返す |
注意: この関数は Windows 環境にはまだ実装されていません。
setlocale(), localeconv() も参照ください。
nl_langinfo
avatar_at_hot_ee
12-Mar-2006 12:58
12-Mar-2006 12:58
zerof at terra dot com dot br
23-Apr-2005 02:34
23-Apr-2005 02:34
<?php
$vlr19900 = nl_langinfo (CODESET);
$vlr19901 = nl_langinfo (D_T_FMT);
$vlr19902 = nl_langinfo (D_FMT);
$vlr19903 = nl_langinfo (T_FMT);
$vlr19904 = nl_langinfo (DAY_1);
$vlr19905 = nl_langinfo (ABDAY_1);
$vlr19906 = nl_langinfo (MON_1);
$vlr19907 = nl_langinfo (ABMON_1);
$vlr19908 = nl_langinfo (RADIXCHAR);
$vlr19909 = nl_langinfo (THOUSEP);
$vlr19910 = nl_langinfo (YESEXPR);
$vlr19911 = nl_langinfo (NOEXPR);
$vlr19912 = nl_langinfo (CRNCYSTR);
echo "encoding codeset => " . $vlr19900;
echo "<br /><br />date/time string para strftime => " . $vlr19901;
echo "<br /><br />date string for strftime => " . $vlr19902;
echo "<br /><br />time string for strftime => " . $vlr19903;
echo "<br /><br />long form day name => " . $vlr19904;
echo "<br /><br />short form day name => " . $vlr19905;
echo "<br /><br />long form month name => " . $vlr19906;
echo "<br /><br />short form month name => " . $vlr19907;
echo "<br /><br />decimals separator => " . $vlr19908;
echo "<br /><br />thousands separator => " . $vlr19909;
echo "<br /><br />REGEXP for 'Yes' => " . $vlr19910;
echo "<br /><br />REGEXP for 'No' => " . $vlr19911;
echo "<br /><br />local currency simbol => " . $vlr19912;
?>