Почему Yii2 форматер не работает правильно? - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу знать, почему во второй строке выдается ошибка:

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 голосов
/ 21 ноября 2018

Ваш формат даты неоднозначен.Вы, вероятно, используете формат 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');
...