我正在尝试使用带有 setlocale 的俄语:
setlocale(LC_TIME,"ru_RUS.utf8");
echo strftime("%A, %B %d", time());
输出为:8 月 29 日,星期四
预期为 : четверг, Август 29
任何帮助将不胜感激。
找到了!如果您使用的是 Linux 主机,请尝试:
setlocale(LC_ALL, 'ru_RU.UTF-8');
会正常工作。如果您使用的是 Windows 托管,请尝试:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
setlocale(LC_ALL, 'russian');
对于俄罗斯语言环境和 UTF-8,可以使用这样的代码。在寡妇和Unix中工作。
header('Content-type: text/html; charset=utf-8');
$locale_time = setlocale (LC_TIME, 'ru_RU.UTF-8', 'Rus');
function strf_time($format, $timestamp, $locale)
{
$date_str = strftime($format, $timestamp);
if (strpos($locale, '1251') !== false)
{
return iconv('cp1251', 'utf-8', $date_str);
}
else
{
return $date_str;
}
}
echo strf_time("%A, %B %d", time(), $locale_time);
结果:
вторник, Октябрь 13
var_dump(setlocale(LC_ALL, 'ru_RU.utf8'));
函数 setlocale 返回系统调用的结果。我认为应该是RU,而不是Ru。
我遇到了类似的问题。我刚刚在我的系统上添加了缺少的语言环境。对于 Ubuntu,如果您需要在下面添加俄语语言环境类型:
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale
不要忘记在它之后重新启动你的 php-fpm