1

当我输入:

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

它为我提供了当前设置语言的正确日期格式。(在我的例子中是'de' => dd.MM.yyyy)。但是当我输入:

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

Yii 给了我 'en_us' 的日期格式(Y/m/d)。

使用 getLocale() 我只会得到保存在 i18n 文件中的字符串。在 ->format->date() 中应该使用这个格式字符串,但我找不到将 i18n 字符串分配给 CDateFormatter 或 CFormatter 对象的方法。

4

1 回答 1

1

访问的CFormatter组件Yii::app()->format并不意味着用于开箱即用的本地化;它不会根据应用程序区域设置自动工作。

您可以手动更改相关属性Yii::app()->format以使其与应用程序区域设置保持一致,但有一种更方便的方法来格式化日期:

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

更多信息请参见CDateFormatter::formatDateTime;如果您想要更多控制,还有其他方法,例如CDateFormatter::format可用。另请记住,CLocale::getNumberFormatter()它可用于格式化数字。

于 2012-04-17T07:30:26.260 回答