php-如何以俄语语言环境输出日期
我有以下日期:php-如何以俄语语言环境输出日期,php,Php,我有以下日期:18/07/2013。我希望它以2013年7月18日的以下格式输出,July应替换为俄文月份名称。下面是我的工作: 1) 从字符串中生成时间戳18/07/2013 2) 设置俄语语言环境setlocale(LC_ALL,'ru_ru.utf-8') 3) 使用标准时间(“%d%B%Y”,日期)格式化时间 然而,它输出了2013年7月18日的July,而没有用俄文名称替换该月的July。怎么了?我用西班牙语实现了相同的结果,就是定义了两个数组,$patterns(英文名称)和$rep
18/07/2013
。我希望它以2013年7月18日的以下格式输出,July
应替换为俄文月份名称。下面是我的工作:1) 从字符串中生成时间戳
18/07/2013
2) 设置俄语语言环境
setlocale(LC_ALL,'ru_ru.utf-8')代码>
3) 使用标准时间(“%d%B%Y”,日期)格式化时间
然而,它输出了2013年7月18日的July
,而没有用俄文名称替换该月的July
。怎么了?我用西班牙语实现了相同的结果,就是定义了两个数组,$patterns(英文名称)和$replacements(西班牙语等效名称),并调用preg_replace函数将它们作为第一和第二个参数传递,格式化日期的结果作为第三个参数传递
这是我构建的函数:
function MonthToSpanish($str, $three = false)
{
$months = array(
'/January/', '/February/', '/March/',
'/April/', '/May/', '/June/', '/July/',
'/August/', '/September/', '/October/', '/November/', '/December/',
'/Jan/', '/Apr/', '/Aug/', '/Dec/',
);
$meses = array(
'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio',
'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre',
'Ene', 'Abr', 'Ago', 'Dic',
);
$res = preg_replace($months, $meses, $str);
if ($three) {
$res = str_replace('Mayo', 'May', $res);
}
return $res;
}
希望您会发现它有点有用。如果安装了Intl扩展,您可以使用MessageFormatter处理您的格式和可能的语法差异
例如:
PHP文档:
如果您不需要完整的句子,也可以使用IntlDateFormatter:setlocale()的可能副本:返回新的当前区域设置,如果您的平台上未实现区域设置功能,指定的区域设置不存在或类别名称无效,则返回FALSE。。。您正在测试setlocale()的返回值吗?@MarkBaker,您是对的,它返回FALSE。如何测试区域设置是否未安装或类别名称无效?在Linux上,locale-a
将返回可用区域设置的列表hanks,我在Windows上。但我想这个地区是不可用的。