0

getid3 を使用してビデオ ファイルの作成日時を取得することを目的とした関数が php ページにあります。私はすべてがうまく機能していて、このバージョンをベッドに置く準備ができていると思っていました.

関連するコードは次のとおりです。

$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。そのため、何が起こっているのかわかりませんが、構文に何かあると想定しています。誰かがこれを整理するのを手伝ってくれますか?

4

1 に答える 1

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');

「日付」マニュアルでフォーマット構文の詳細を読むことができます。

于 2016-05-20T11:37:58.437 に答える