У меня есть функция на странице php, которая предназначена для получения даты / времени создания видеофайлов с помощью getid3. Я думал, что все работало нормально, и был готов уложить эту версию в постель, когда я (конечно) запустил все еще раз, чтобы убедиться, и в итоге столкнулся с проблемой, которую я просто не могу понять.
Соответствующий бит кода такой:
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($file);
if ($ThisFileInfo["quicktime"]["moov"]["subatoms"][0]["creation_time_unix"]){
$createdate = new DateTime("@".strval($ThisFileInfo["quicktime"]["moov"]["subatoms"][0]["creation_time_unix"]));
}
else {
$createdate = new DateTime("@".strval($ThisFileInfo["quicktime"]["moov"]["subatoms"][0]["modify_time_unix"]));
}
$createdate->setTimeZone(new DateTimeZone('America/New_York'));
//var_dump($createdate);
$createdate = $createdate->date;
Когда я обрабатываю файл, используя эту часть, я получаю сообщение об ошибке Notice: Undefined property: DateTime::$date in … line 179
(путь к файлу удален мной). Тем не менее, я знаю, что это не так, потому что если я раскомментирую var_dump
строка, перечисленная выше, я получаю вывод object(DateTime)#3 (3) { ["date"]=> string(26) "2016-01-24 15:20:32.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "America/New_York" }
,
Это, конечно, выглядит как объект DateTime $createdate
имеет свойство под названием $date
, поэтому я не уверен, что происходит, хотя я предполагаю, что это что-то в моем синтаксисе. Может ли кто-нибудь помочь мне разобраться с этим?
Если вы не уверены, какие переменные доступны из вашей текущей области видимости объекта, вы можете использовать get_class_vars ().
Использование его в объекте DateTime возвращает пустой массив:
var_dump(get_class_vars(get_class($datetimeobj)));
…что означает $date
собственность частная. Конечно, вы можете получить доступ к строковому представлению объекта DateTime с помощью Формат даты() метод:
$dateString = date_format($dateTimeObj, 'Y-m-d H:i:s');
Вы можете прочитать больше о синтаксисе формата в руководстве «дата».
Других решений пока нет …