Yii全球日期格式(l18n)

时间:2012-04-17 07:17:18

标签: date yii internationalization format

当我输入:

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 个答案:

答案 0 :(得分:1)

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

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

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

有关详细信息,请参阅CDateFormatter::formatDateTime;如果您想要更多控制,可以使用其他方法,例如CDateFormatter::format。另请注意,CLocale::getNumberFormatter()可用于格式化数字。