PHP 8.3.4 Released!

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

nl_langinfoQuery language and locale information

Description

nl_langinfo(int $item): string|false

nl_langinfo() is used to access individual elements of the locale categories. Unlike localeconv(), which returns all of the elements, nl_langinfo() allows you to select any specific element.

Parameters

item

item may be an integer value of the element or the constant name of the element. The following is a list of constant names for item that may be used and their description. Some of these constants may not be defined or hold no value for certain locales.

nl_langinfo Constants
Constant Description
LC_TIME Category Constants
ABDAY_(1-7) Abbreviated name of n-th day of the week.
DAY_(1-7) Name of the n-th day of the week (DAY_1 = Sunday).
ABMON_(1-12) Abbreviated name of the n-th month of the year.
MON_(1-12) Name of the n-th month of the year.
AM_STR String for Ante meridian.
PM_STR String for Post meridian.
D_T_FMT String that can be used as the format string for strftime() to represent time and date.
D_FMT String that can be used as the format string for strftime() to represent date.
T_FMT String that can be used as the format string for strftime() to represent time.
T_FMT_AMPM String that can be used as the format string for strftime() to represent time in 12-hour format with ante/post meridian.
ERA Alternate era.
ERA_YEAR Year in alternate era format.
ERA_D_T_FMT Date and time in alternate era format (string can be used in strftime()).
ERA_D_FMT Date in alternate era format (string can be used in strftime()).
ERA_T_FMT Time in alternate era format (string can be used in strftime()).
LC_MONETARY Category Constants
INT_CURR_SYMBOL International currency symbol.
CURRENCY_SYMBOL Local currency symbol.
CRNCYSTR Same value as CURRENCY_SYMBOL.
MON_DECIMAL_POINT Decimal point character.
MON_THOUSANDS_SEP Thousands separator (groups of three digits).
MON_GROUPING Like "grouping" element.
POSITIVE_SIGN Sign for positive values.
NEGATIVE_SIGN Sign for negative values.
INT_FRAC_DIGITS International fractional digits.
FRAC_DIGITS Local fractional digits.
P_CS_PRECEDES Returns 1 if CURRENCY_SYMBOL precedes a positive value.
P_SEP_BY_SPACE Returns 1 if a space separates CURRENCY_SYMBOL from a positive value.
N_CS_PRECEDES Returns 1 if CURRENCY_SYMBOL precedes a negative value.
N_SEP_BY_SPACE Returns 1 if a space separates CURRENCY_SYMBOL from a negative value.
P_SIGN_POSN
  • Returns 0 if parentheses surround the quantity and CURRENCY_SYMBOL.
  • Returns 1 if the sign string precedes the quantity and CURRENCY_SYMBOL.
  • Returns 2 if the sign string follows the quantity and CURRENCY_SYMBOL.
  • Returns 3 if the sign string immediately precedes the CURRENCY_SYMBOL.
  • Returns 4 if the sign string immediately follows the CURRENCY_SYMBOL.
N_SIGN_POSN
LC_NUMERIC Category Constants
DECIMAL_POINT Decimal point character.
RADIXCHAR Same value as DECIMAL_POINT.
THOUSANDS_SEP Separator character for thousands (groups of three digits).
THOUSEP Same value as THOUSANDS_SEP.
GROUPING  
LC_MESSAGES Category Constants
YESEXPR Regex string for matching "yes" input.
NOEXPR Regex string for matching "no" input.
YESSTR Output string for "yes".
NOSTR Output string for "no".
LC_CTYPE Category Constants
CODESET Return a string with the name of the character encoding.

Return Values

Returns the element as a string, or false if item is not valid.

Examples

Example #1 nl_langinfo() example

<?php

var_dump
(nl_langinfo(CODESET));
var_dump(nl_langinfo(YESEXPR));
?>

The above example will output something similar to:

string(14) "ANSI_X3.4-1968"
string(5) "^[yY]"

Notes

Note: This function is not implemented on Windows platforms.

See Also

add a note

User Contributed Notes 2 notes

up
4
avatar_at_hot_ee
18 years ago
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.
up
-1
mark at moderndeveloper dot com
10 years ago
If you are looking for the stand-alone (nominative form) of a month, you may not be able to use nl_langinfo(), but with PHP 5.5 you can use something like:

<?php
echo IntlDateFormatter::formatObject(
new
DateTime('2013-01-01 00:00:00 Europe/Moscow'),
'LLLL',
'ru_RU');
?>

Note that the format uses the ICU patterns, not the PHP date() patterns.
To Top