У меня есть свидание, подобное этому: 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
, Можете ли вы указать мне правильное направление?
Вам нужно использовать строчные y
проанализировать дату с двухзначным годом:
$parsed = \DateTime::createFromFormat('y-m-d', '17-05-17');
$formatted = \Yii::$app->formatter->asDate($parsed, 'php:Y-m-d');
Вы можете настроить dateFormat
собственность для Class yii\i18n\Formatter
в компонентах или путем передачи параметра в функцию
$dateFormat
public property Строка формата по умолчанию, которая будет использоваться для
форматировать дату. Это может быть «короткий», «средний», «длинный» или «полный», который
представляет предустановленный формат различной длины.Это также может быть пользовательский формат, указанный в руководстве 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');
Используйте эти:
Yii::$app->formatter->asDate('17-05-17', 'php:Y-m-d');
См .: https://www.yiiframework.com/doc/guide/2.0/en/output-formatting