ホームページ >バックエンド開発 >PHPチュートリアル >システムのデフォルトのロケールを尊重するように DateTime オブジェクトをフォーマットするにはどうすればよいですか?

システムのデフォルトのロケールを尊重するように DateTime オブジェクトをフォーマットするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 11:24:101009ブラウズ

How Can I Format a DateTime Object to Respect the System's Default Locale?

Locale::getDefault() を考慮した DateTime オブジェクトの書式設定

この苦境では、ユーザーはシステムのデフォルト ロケールを考慮して DateTime オブジェクトを書式設定しようとします。現在、ユーザーは format() メソッドを使用していますが、目的の言語翻訳は考慮されていません。

適切なロケール設定を取得するために Locale::getDefault() 関数を組み込もうとしました。ただし、この設定を使用するように DateTime::format に指示する方法は見つかりませんでした。

解決策

推奨される解決策には、Intl 拡張子を使用して日付をフォーマットすることが含まれます。この拡張は本質的に、選択されたロケールに準拠します。あるいは、ユーザーは IntlDateFormatter::setPattern() を使用してこの動作をオーバーライドできます。

これは、目的の出力形式のカスタム パターンを示すコード スニペットです:

$dt = new DateTime;

$formatter = new IntlDateFormatter('de_DE', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
$formatter->setPattern('E d.M.yyyy');

echo $formatter->format($dt);

このコードは日付を出力します。システムのドイツ語ロケール (de_DE) を考慮した、希望の形式で。たとえば、今日の日付として「Di. 4.6.2013」と表示されます。

以上がシステムのデフォルトのロケールを尊重するように DateTime オブジェクトをフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。