当我输入:
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对象的方法。
答案 0 :(得分:1)
使用Yii::app()->format
访问的CFormatter
组件并非意图用于开箱即用的本地化;它不会根据应用程序区域设置自动运行。
您可以手动更改Yii::app()->format
上的相关属性,使其与应用程序区域设置保持一致,但有一种更方便的格式化日期的方法:
Yii::app()->locale->dateFormatter->formatDateTime(...)
有关详细信息,请参阅CDateFormatter::formatDateTime
;如果您想要更多控制,可以使用其他方法,例如CDateFormatter::format
。另请注意,CLocale::getNumberFormatter()
可用于格式化数字。