对象属性不显示



我在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财产是私有的。当然,您可以使用 date_format() 方法访问 DateTime 对象的字符串表示形式:

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

您可以在"日期"手册中阅读有关格式语法的更多信息。

最新更新