Yii2日期格式,从2位年份到4位

时间:2018-06-28 09:28:58

标签: php date yii2 formatter

我有一个这样的日期: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。您能指出我正确的方向吗?

3 个答案:

答案 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');

请参见http://php.net/manual/en/function.date.php

答案 2 :(得分:0)

使用这些:

Yii::$app->formatter->asDate('17-05-17', 'php:Y-m-d');

引用:https://www.yiiframework.com/doc/guide/2.0/en/output-formatting