Yii2 格式化程序语言环境不起作用

Posted

技术标签:

【中文标题】Yii2 格式化程序语言环境不起作用【英文标题】:Yii2 formatter locale not working 【发布时间】:2017-05-25 09:06:48 【问题描述】:

我的 yii2 日期格式化程序有问题,它没有使用我设置的语言环境。全局语言设置为 de-DE,它似乎在除日期格式化程序之外的所有地方都生效。我尝试在配置文件中设置格式化程序语言环境,如下所示:

 'formatter' => [
        'dateFormat' => 'dd.MM.yyyy',            
        'decimalSeparator' => ',',
        'thousandSeparator' => ' ',
        'currencyCode' => 'EUR',
        'locale'=>'de_DE'
   ],

也直接在代码中使用格式化程序之前:

Yii::$app->formatter->locale = 'de-DE';
echo Yii::$app->formatter->asDatetime('2014-01-01'); 

但它会将日期格式化为 2014 年 1 月 1 日上午 10:04:36。 有什么想法吗?

【问题讨论】:

这个问题在某种程度上是错误的。代码没有出现语言环境问题,这是由错误的属性使用引起的。 【参考方案1】:

参数dateFormat 只对asDate() 有效。对于asDatetime() 设置datetimeFormat

【讨论】:

【参考方案2】:

可能的原因: 检查并确保安装了 php-intl 扩展。

见:https://www.yiiframework.com/doc/guide/2.0/en/tutorial-i18n#parameter-formatting

【讨论】:

这还不够回答 提供更多关于你答案的细节

以上是关于Yii2 格式化程序语言环境不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 中的 setlocale 不起作用

身份验证在 yii2 中不起作用

颤振语音识别语言环境de_DE不起作用

我用 C 语言编写了一个程序,它接受两个输入,x 和 n,并将 x 提高到 n 次方。 10^10 不起作用,发生了啥?

Yii2 NOT IN条件不起作用

奏鸣曲日期选择器在其他语言环境中不起作用