РНР Датавремя метод __Construct() не удалось разобрать строку (хххххххх) в позиции х

У меня была эта ошибка когда пытаюсь создать новый объект datetime, используя метку времени:

исключение: Датавремя:: методConstruct(): не удалось выполнить синтаксический анализ строки времени (1372622987) в положении 8 (8): неожиданный символ в DateTime-и GT; методConstruct()

Код создания объекта:

$start_date = new DateTime( "@{$dbResult->db_timestamp}" );

Где $dbResult->db_timestamp является допустимым метку времени Unix, взятые из базы данных. Метки вопроса:

1372622987

Я бы понял эту ошибку недопустимые форматы передается, но это подлинный метки.

Причина это очень странно: я так запустил скрипт, чтобы создать новый объект datetime с меткой времени передается как значение жестко, и он не сообщил никаких ошибок.

Это, кажется, был один, но мне нужно объяснение, если есть один, как я могу'т позволить этому случиться снова.

Комментарии к вопросу (5)
Решение

Вы должны использовать вместо setTimestamp, если вы жестко кодировать его:

$start_date = new DateTime();
$start_date->setTimestamp(1372622987);

в вашем случае

$start_date = new DateTime();
$start_date->setTimestamp($dbResult->db_timestamp);
Комментарии (4)

Используйте createFromFormat метод:

$разница = типа datetime::createFromFormat (на"Щ" и, $dbResult->db_timestamp);

Обновление

Теперь я рекомендую использовать углерода

Комментарии (3)

изменить ваш код на этот

$start_date = new DateTime( "@" . $dbResult->db_timestamp );

и он будет работать нормально

Комментарии (5)
$start_date = new DateTime();
$start_date->setTimestamp($dbResult->db_timestamp);
Комментарии (0)

Этот работал для меня.

   /**
     * return date in specific format, given a timestamp.
     *
     * @param  timestamp  $datetime
     * @return string
     */
    public static function showDateString($timestamp)
    {
      if ($timestamp !== NULL) {
        $date = new DateTime();
        $date->setTimestamp(intval($timestamp));
        return $date->format("d-m-Y");
      }
      return '';
    }
Комментарии (0)