4

美しいポーランド語では、「March 2013」(曜日なし) と「March 17 2013」(曜日あり) のように、月の名前に異なる文法を使用します。

PHPstrftime()を with で使用%Bすると、no-day-case の正しい月名が得られます。with-day-case で日付を正しく書き込むにはどうすればよいですか? 自分で何かをコーディングする必要がありますか、それともそのような場合のサポートはすでにありますか?

4

4 に答える 4

8

intl 拡張をオンにすると、PHP5.3 以降の DateFormatter の国際版であるIntlDateFormatterがあります。

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 をチェックして、コンストラクターの 2 番目のパラメーターで別の表記を取得することもできます。

于 2013-08-06T06:03:50.717 に答える
6

2 つの配列が必要です。

$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);

入力は、翻訳したい入力です。

于 2013-08-05T23:12:36.787 に答える
1

おそらく世界中のすべての言語を知っているわけではないので、どの言語にもそのような機能が必要であると思いますが、英語は例外であり、この規則は何も変更しません。次に、ロケールに応じて有効な日付文字列を提供するフォーマット クラスを作成します。

独自の関数で月を からMarzecに置き換えるロジックを実装する場合があるMarcaため、2 つの配列を適切なインデックスで格納し、月に基づいて、配列 1 のどの項目を出力文字列の array2 のどの項目と置き換えるかを選択してから返します。

場合によっては、最も簡単なオプションが最善を尽くすことがあります。

于 2013-08-05T22:33:00.710 に答える
-3

PHP で日付の書式設定を探している場合は、 http ://php.net/manual/en/datetime.format.php をご覧ください。

于 2013-08-05T22:25:49.863 に答える