РНР Датавремя метод __Construct() не удалось разобрать строку (хххххххх) в позиции х
У меня была эта ошибка когда пытаюсь создать новый объект datetime, используя метку времени:
исключение: Датавремя:: методConstruct(): не удалось выполнить синтаксический анализ строки времени (1372622987) в положении 8 (8): неожиданный символ в DateTime-и GT; методConstruct()
Код создания объекта:
$start_date = new DateTime( "@{$dbResult->db_timestamp}" );
Где $dbResult->db_timestamp является допустимым метку времени Unix, взятые из базы данных. Метки вопроса:
1372622987
Я бы понял эту ошибку недопустимые форматы передается, но это подлинный метки.
Причина это очень странно: я так запустил скрипт, чтобы создать новый объект datetime с меткой времени передается как значение жестко, и он не сообщил никаких ошибок.
Это, кажется, был один, но мне нужно объяснение, если есть один, как я могу'т позволить этому случиться снова.
Вы должны использовать вместо setTimestamp, если вы жестко кодировать его:
в вашем случае
Используйте
createFromFormat
метод:$разница = типа datetime::createFromFormat (на"Щ" и, $dbResult->db_timestamp);
Обновление
Теперь я рекомендую использовать углерода
изменить ваш код на этот
и он будет работать нормально
Этот работал для меня.