use*_*209 4 php date internationalization
当说"2013年3月"(没有日期)与"2013年3月17日"(有一天)这样的事情时,美丽的波兰语使用不同的语法作为月份的名称.
使用PHP strftime(),%B可以为无日案例提供正确的月份名称.如何在日常情况下正确写日期?我是否必须自己编写代码或是否已经支持此类情况?
有IntlDateFormatter,如果你启用了intl扩展,那么自PHP5.3以来就是DateFormatter的国际版本.
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
exit ('IntlDateFormatter is available on PHP 5.3.0 or later.');
}
if (!class_exists('IntlDateFormatter')) {
exit ('You need to install php_intl extension.');
}
$polishDateFormatter = new IntlDateFormatter(
'pl_PL',
IntlDateFormatter::LONG,
IntlDateFormatter::NONE
);
$now = new DateTime("2013-08-06");
echo $polishDateFormatter->format($now), "\n";
Run Code Online (Sandbox Code Playgroud)
这段代码归还给我,
2013年6 sierpnia
我希望是正确的.(我不懂波兰语;-)
您还可以检查IntlDateFormatter :: SHORT,MEDIUM和FULL以在构造函数的第二个参数处获得另一个表示法.
你需要两个数组:
$m_en = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
$m_pol = array("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec");
Run Code Online (Sandbox Code Playgroud)
你现在要做的就是:
$workoutSlug = str_replace($m_en, $m_pol, $input);
Run Code Online (Sandbox Code Playgroud)
输入是您想要翻译的输入.