Формат даты Yii2 от 2 до 4 цифр - PullRequest
0 голосов
/ 28 июня 2018

У меня есть такая дата: 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 голосов
/ 28 июня 2018

Вы можете настроить 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');
0 голосов
/ 28 июня 2018

Вам нужно использовать строчные буквы y для разбора даты с двухзначным годом:

$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

0 голосов
/ 28 июня 2018

Используйте эти:

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

См .: https://www.yiiframework.com/doc/guide/2.0/en/output-formatting

...