PHP setlocale字符串

时间:2014-08-12 21:06:10

标签: php locale

在PHP中,我设置了这样的语言环境:

// I simplified code, actually there exists 20 different locales and system selects proper language
$myArray=array('de_DE.utf8', 'de_DE' );
$localeData = "'" . implode("', '", $myArray) . "'";
// $localeData = "'de_DE.utf8', 'de_DE'"
setlocale(LC_TIME, $localeData);

这一直在进行中。经过数小时的调试后,我发现这有效:

setlocale(LC_TIME, 'de_DE.utf8', 'de_DE');

setlocale的行为是否改变了?
将区域设置设置为长字符串会更容易 但是现在我怎样才能制作setlocale? 我需要将每个值作为参数传递给setlocale?

(我在Apache 2和Centos 6.5中使用PHP 5.4.30)

1 个答案:

答案 0 :(得分:1)

您可以使用此代码

将每个值转换为单独的变量
$myArray = array('de_DE.utf8', 'de_DE' );
list($a, $b) = $myArray;
echo $a; //de_DE.utf8
echo $b; //de_DE

现在你可以这样做

setlocale(LC_TIME, $a, $b);

也可以将数组直接传递给像这样的setlocale。

setlocale(LC_TIME, $myArray);

http://php.net/manual/en/function.setlocale.php