2012-04-17 12 views
1

私が入力した場合:Yiiのグローバル日付形式(l18n)

Yii::app()->getLocale()->dateFormat 

それは私の現在の設定言語の正しいDATEFORMATを提供します。 (私の例では 'de' => dd.MM.yyyyです)。しかし、私が入力するとき:

Yii::app()->format->dateFormat 

Yiiは私に 'en_us'(Y/m/d)の日付形式を与えます。

getLocale()では、i18nファイルに保存されている文字列のみを取得します。 In - > format-> date()この形式の文字列を使用する必要がありますが、i18n文字列をCDateFormatterまたはCFormatterオブジェクトに割り当てる方法が見つかりません。

答えて

1

Yii::app()->formatでアクセスされるCFormatterコンポーネントは、出荷時のローカライゼーションには使用されません。アプリケーションのロケールに応じて自動的には動作しません。

手動でアプリケーションのロケールに合わせて、それを持って来るために Yii::app()->formatに関連するプロパティを変更することができ

が、日付の書式を設定するために、より便利な方法があります:

Yii::app()->locale->dateFormatter->formatDateTime(...) 

詳細についてはCDateFormatter::formatDateTimeを参照してください。より制御したい場合は、CDateFormatter::formatなどの他の方法があります。また、数字の書式設定にはCLocale::getNumberFormatter()を使用できます。

+0

ありがとうございました。 –