对象属性未显示

时间:2016-05-20 11:22:42

标签: php datetime var-dump getid3

我在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的属性,所以我不确定发生了什么,虽然我假设它是我语法中的东西。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果您不确定可以从当前对象范围访问哪些变量,则可以使用 get_class_vars()

在DateTime对象上使用它会返回一个空数组:

var_dump(get_class_vars(get_class($datetimeobj)));

...这意味着$date属性是私有属性。当然,您可以使用 date_format() 方法访问DateTime对象的字符串表示形式:

$dateString = date_format($dateTimeObj, 'Y-m-d H:i:s');

您可以阅读格式语法in the "date" manual的更多信息。

相关问题