我想知道第二行为什么引发错误:
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');
答案 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');