Согласно документации DateTime :: createFromFormat:
Возвращает новый экземпляр DateTime или FALSE при ошибке.
Вот почему вы вызываете его как логическое значение, потому что значение равно false.
Ваш формат, кажется, правильный, это означает, что createFromFormat
не может обработать ваш $start
. Ваш ввод не соответствует вашему формату, убедитесь, что он соответствует.
Например, работает следующее:
echo (DateTime::createFromFormat("Y-m-d H:i:s", "2019-01-01 12:30:30"))->format("Y"); // result: 2019
@ Jeprubio из комментариев правильно, кстати. - добавьте миллисекунды в соответствии с заданным форматом:
echo DateTime::createFromFormat("Y-m-d H:i:s.u", "2017-10-26 00:00:00.000")->format("Y"); // 2017