为什么Yii2格式化程序无法正常工作?

时间:2018-11-21 08:11:41

标签: yii2 internationalization formatter

我想知道第二行为什么引发错误:

Yii::$app->formatter->dateFormat='yyyy-MM-dd';
echo Yii::$app->formatter->format('14/01/2017','date');

为什么在这种情况下没有错误?

Yii::$app->formatter->dateFormat='yyyy-MM-dd';
echo Yii::$app->formatter->format('10/07/2015', 'date');

1 个答案:

答案 0 :(得分:2)

您的日期格式不明确。您可能使用的是DD/MM/YYYY格式,但是PHP将此解释为MM/DD/YYYY。没有第14个月,因此14/01/2017是错误的日期。 10/07/2015不会引发任何错误,但是它可能被错误地解释为2015-10-07而不是2015-07-10

您需要先分析日期,然后再将其传递给格式化程序:

Yii::$app->formatter->dateFormat = 'yyyy-MM-dd';
$date = DateTime::createFromFormat('d/m/Y', '14/01/2017');
echo Yii::$app->formatter->format($date, 'date');