如果我有某种语言的月份名称(比如说阿尔巴尼亚语),我如何获得与它对应的数字(在 PHP 中)?除了用该语言的月份名称制作数组的明显方法(恐怕这很容易出现拼写错误),我认为您可以使用 setlocale 但我不知道下一步该做什么。
问问题
2816 次
2 回答
1
看一下 i18n 包。它为 php 中的国际化提供类和函数。
http://php-flp.sourceforge.net/getting_started_english.htm#dates
于 2010-12-14T10:04:26.293 回答
1
我可能错了,但据我所知,您可以使用语言环境生成月份名称,但没有内置日期函数可以解析非英文名称。
生成要比较的名称列表应该相当容易:
<?php
$langs = array(
// Windows only locale names
'Albanian',
'French',
'German',
'Spanish',
);
$months = array();
foreach($langs as $lang){
setlocale(LC_TIME, $lang);
foreach(range(1, 12) as $i){
$months[$lang][$i] = strftime('%B', mktime(0, 0, 0, $i));
}
}
但是,在某些语言中可能存在替代拼写,因此此方法的可靠性实际上取决于您的确切需求。
PHP 有一些国际化函数可能是更好的选择。IntlDateFormatter ::parse()方法似乎完全符合您的要求。但是,它的要求包括PHP 5 >= 5.3.0, PECL intl >= 1.0.0
.
于 2010-12-14T10:25:04.110 回答