setlocale でロシア語を使用しようとしています:
setlocale(LC_TIME,"ru_RUS.utf8");
echo strftime("%A, %B %d", time());
出力は : 8 月 29 日木曜日
期待値: четверг, Август 29
どんな助けでも大歓迎です。
ロシア語ロケールと UTF-8 では、このようなコードを使用できます。Widowsと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
同様の問題に遭遇しました。システムに不足しているロケールを追加しました。Ubuntu の場合、以下にロシア語のロケール タイプを追加する必要がある場合:
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale
その後、php-fpmを再起動することを忘れないでください