我有一个这样的日期:17-05-17
,我想这样显示:2017-05-17
。
\Yii::$app->formatter->asDate('17-05-17')
\Yii::$app->formatter->asDate('17-05-17', 'php:Y-m-d');
两个都显示0017-05-17
。您能指出我正确的方向吗?
答案 0 :(得分:1)
您可以在组件中为dateFormat
配置Class yii\i18n\Formatter
属性,也可以通过将参数传递给函数
$dateFormat
公共属性用于设置默认格式的字符串 格式化日期。可以是“短”,“中”,“长”或“满”,其中 代表不同长度的预设格式。它也可以是ICU手册中指定的自定义格式。 另外,这可以是一个前缀为php的字符串: PHP date()函数可以识别的格式。
在配置中
'components'=>[
'formatter'=>[
'dateFormat'=>'yyyy/MM/dd' //ICU FORMAT
//or php format
//'dateFormat'=>'php:y/m/d' //php FORMAT
]
]
并像
一样使用它Yii::$app->formatter->asDate($date);
或在参数中传递
Yii::$app->formatter->asDate($date,'yyyy/MM/dd');
答案 1 :(得分:1)
您需要使用小写的y
来解析2位数字的年份:
$parsed = \DateTime::createFromFormat('y-m-d', '17-05-17');
$formatted = \Yii::$app->formatter->asDate($parsed, 'php:Y-m-d');
答案 2 :(得分:0)
使用这些:
Yii::$app->formatter->asDate('17-05-17', 'php:Y-m-d');
引用:https://www.yiiframework.com/doc/guide/2.0/en/output-formatting