この苦境では、ユーザーはシステムのデフォルト ロケールを考慮して 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 サイトの他の関連記事を参照してください。