特定の言語 (たとえばアルバニア語) の月名がある場合、それに対応する番号を (PHP で) 取得するにはどうすればよいですか? その言語の月名の配列を作成する明白な方法 (つづりの間違いに対して非常に脆弱であると思います) に加えて、setlocale を使用できると思いますが、次に何をすべきかわかりません。
2816 次
2 に答える
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 に答える
1
i18n パッケージを見てください。PHP での国際化のためのクラスと関数を提供します。
http://php-flp.sourceforge.net/getting_started_english.htm#dates
于 2010-12-14T10:04:26.293 に答える