検索

ホームページ  >  に質問  >  本文

PHP では、IntCalendar が間違ったロケールを出力します。

<p>次のコードがあります。これはロケールとして fr_FR を出力するはずですが、何らかの理由で (タイムゾーンに関係なく) en_US_POSIX を出力します。私が何を間違えたのでしょうか? </p> <pre class="brush:php;toolbar:false;">$loc = IntlCalendar::createInstance(new DateTimeZone('ヨーロッパ/パリ')); echo $loc->getLocale(Locale::VALID_LOCALE);</pre> <p>参考リンク: https://www.php.net/manual/en/intlcalendar.createinstance.php および https://www.php.net/manual/en/intlcalendar.getlocale.php<br /> ;<br />これは正しいアプローチではないようです (コードは有効ですが) - 特定のタイムゾーンの「デフォルト」ロケールを見つけるためのより適切な方法はありますか? </p>


P粉553428780P粉553428780490日前579

全員に返信(2)返信します

  • P粉464088437

    P粉4640884372023-07-29 09:18:13

    タイムゾーンをパリのタイムゾーンに設定しました。しかし、ロケールを設定していませんでした。それらは異なるものです。ロケールは言語と書式設定規則を定義し、タイム ゾーンは UTC を現地時間に変換し、またその逆に戻すためのルールを設定します。あなたの定義はパリにいるアメリカ人にも当てはまります。これは、特に 8 月に有効な使用例です。

    次のコードを試してください:


    リーリー

    返事
    0
  • P粉054616867

    P粉0546168672023-07-29 09:01:21

    まず、特定のタイムゾーンから関連する国 (および国コード) を取得します。

    リーリー

    次に、この情報を ICU ライブラリで利用可能なリソースと組み合わせて、特定の国コードに最も可能性の高い言語を取得できます。

    リーリー

    これはすべてのユーザーに適用されるわけではないことに注意してください。これはデフォルトの開始点として適していますが、常にユーザーに言語の好みを尋ねる必要があります。

    リーリー

    返事
    0
  • キャンセル返事