优美的波兰语在说“2013 年 3 月”(无天)和“2013 年 3 月 17 日”(有天)之类的话时使用不同的语法来命名月份。
使用 PHP 的strftime()
with%B
可以为没有日期的情况提供正确的月份名称。如何在 with-day-case 中正确写入日期?我是否必须自己编写代码,或者是否已经对此类情况提供了一些支持?
优美的波兰语在说“2013 年 3 月”(无天)和“2013 年 3 月 17 日”(有天)之类的话时使用不同的语法来命名月份。
使用 PHP 的strftime()
with%B
可以为没有日期的情况提供正确的月份名称。如何在 with-day-case 中正确写入日期?我是否必须自己编写代码,或者是否已经对此类情况提供了一些支持?
如果您打开 intl 扩展,则有IntlDateFormatter ,这是自 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";
此代码返回我,
6 西尔普尼亚 2013
我希望这是正确的。(我不懂波兰语 ;-)
您还可以检查 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");
你现在要做的就是:
$workoutSlug = str_replace($m_en, $m_pol, $input);
输入是您要翻译的输入。
由于您可能不了解世界上所有的语言,因此我认为任何语言都需要此类功能,而英语是一个例外,该规则不会改变任何内容。然后我会在格式类上创建,它将根据语言环境提供有效的日期字符串。
您自己的函数可以实现将月份从Marzec
into替换为的逻辑Marca
,因此您存储两个具有适当索引的数组,并根据月份选择数组 1 中的哪个项目应该在返回之前用输出字符串中的 array2 的哪个项目替换。
有时最简单的选择是你能做的最好的。
如果您正在寻找 php 中的日期格式,请访问:http: //php.net/manual/en/datetime.format.php