PHP | setlocale() Function

The setlocale() function is an inbuilt function in PHP which is used to set locale information. Locale setting means assigning your system a geographical location and then perform certain functions based on the locale of the place. Usually, programs dealing with the date and time of other places deal with this.

Syntax:

setlocale( $category , $locale )

Return values: It returns the new current locale, or FALSE if the locale functionality is not implemented on your platform, the specified locale does not exist or the category name is invalid.



Parameter: This functuon accept two parameters as mentioned above and described below:

  • Category: It is an integer named constant specifying the category of the functions affected by the locale setting:
    • LC_ALL – for all of the below
    • LC_COLLATE– for string comparison
    • LC_CTYPE– for character classification and conversion
    • LC_MONETARY– for localeconv()
    • LC_NUMERIC– for decimal separator
    • LC_TIME– for date and time formatting with strftime()
    • LC_MESSAGES -for system responses
  • Locale: Usually an array of required locales for the specified regions.
    • IF LOCALE IS NULL OR THE EMPTY STRING- the locale names will be set from the values of environment variables with the same names as the above categories, or from “LANG”.
    • IF LOCALE IS “0”- the locale setting is not affected, only the current setting is returned.
    • IF LOCALE IS AN ARRAY- the locale setting is not affected, only the current setting is returned.

Below examples illustrate the setlocale() function in PHP:

Example 1: A simple program to generate the locale defined time.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Setting locale to german
setlocale(LC_ALL,"de");
echo strftime("The current german time is %r");
  
// Setting locale to english 
setlocale(LC_ALL,"en");
echo strftime(" and the current english time is %r");
?>

chevron_right


Output:

The current german time is 08:17:45 AM 
and the current english time is 08:17:45 AM

Example 2: Program to check which locale name for german is supported by the system.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Try different possible locale names for german 
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

chevron_right


Output:

Preferred locale for german on this system is 'German_Germany.1252'

Example 3: Simple program to use LC_MONETARY

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Setting locale to english 
setlocale(LC_MONETARY,"en");
$loc=localeconv();
print_r($loc);
?>

chevron_right


Output:

Array
(
    [decimal_point] => .
    [thousands_sep] => 
    [int_curr_symbol] => 
    [currency_symbol] => 
    [mon_decimal_point] => 
    [mon_thousands_sep] => 
    [positive_sign] => 
    [negative_sign] => 
    [int_frac_digits] => 127
    [frac_digits] => 127
    [p_cs_precedes] => 127
    [p_sep_by_space] => 127
    [n_cs_precedes] => 127
    [n_sep_by_space] => 127
    [p_sign_posn] => 127
    [n_sign_posn] => 127
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
        )

)

Reference: https://www.php.net/manual/en/function.setlocale.php




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.