为什么 Yii2 格式化程序不能正常工作?
Why Yii2 formatter does not work correctly?
想知道为什么第二行报错:
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');
您的日期格式不明确。您可能正在使用 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');
想知道为什么第二行报错:
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');
您的日期格式不明确。您可能正在使用 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');