2012-04-17 72 views
1

当我键入:Yii的全球日期格式(l18n)

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对象。

回答

1

Yii::app()->format访问的CFormatter部件不意味着用于本地化开箱;它不会根据应用程序语言环境自动工作。

您可以手动更改Yii::app()->format相关属性,使之与应用程序地区线,但有一个格式化日期更方便的方法:

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

CDateFormatter::formatDateTime更多的信息如果你想要更多的控制,还有其他方法可用,如CDateFormatter::format。另请注意,CLocale::getNumberFormatter()可用于格式化数字。

+0

非常感谢。 – 2012-04-17 08:04:21