3

私は次のPHPコードを持っています:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
var_dump($ep1); 

これを返します:

object(TvDb\Episode)#60 (17) {
    ["id"]=> int(4490826)
    ["number"]=> int(12)
    ["season"]=>      int(3)
    ["directors"]=> array(0) { }
    ["guestStars"]=> array(0) { }        
    ["writers"]=> array(0) { }
    ["name"]=> string(11) "Episode 312"
    ["firstAired"]=> object(DateTime)#57 (3) {
        ["date"]=> string(19) "2013-04-07 00:00:00"
        ["timezone_type"]=> int(3)
        ["timezone"]=> string(12) "Europe/Sofia"
    }
    ["imdbId"]=> string(0) ""
    ["language"]=> string(2) "en"
    ["overview"]=> string(0) ""
    ["rating"]=> string(1) "0"
    ["ratingCount"]=> int(0)
    ["lastUpdated"]=> object(DateTime)#3 (3) {
        ["date"]=> string(19) "2013-01-30 22:15:41"
        ["timezone_type"]=> int(1)
        ["timezone"]=> string(6) "+00:00"
    }
    ["seasonId"]=> int(501077)
    ["serieId"]=> int(161511)
    ["thumbnail"]=> string(0) ""
}    

「日付」をエコーし​​たいので、次のように書きます。

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
echo ($ep1->firstAired->date);

そしてそれは何も返しませんが、私がこれを行うと:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
var_dump($ep1);
echo ($ep1->firstAired->date);

そして、ダンプの後に日付が表示されます:

object(TvDb\Episode)#60 (17) { ["id"]=> int(4490826) ["number"]=> int(12) ["season"]=> int(3) ["directors"]=> array(0) { } ["guestStars"]=> array(0) { } ["writers"]=> array(0) { } ["name"]=> string(11) "Episode 312" ["firstAired"]=> object(DateTime)#57 (3) { ["date"]=> string(19) "2013-04-07 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(12) "Europe/Sofia" } ["imdbId"]=> string(0) "" ["language"]=> string(2) "en" ["overview"]=> string(0) "" ["rating"]=> string(1) "0" ["ratingCount"]=> int(0) ["lastUpdated"]=> object(DateTime)#3 (3) { ["date"]=> string(19) "2013-01-30 22:15:41" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" } ["seasonId"]=> int(501077) ["serieId"]=> int(161511) ["thumbnail"]=> string(0) "" } 2013-04-07 00:00:0

私はこの問題を抱えていません:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
echo ($ep1->name);

私は十分に明確であったことを望みます、そしてそれが愚かな質問であるならば申し訳ありません。お時間をいただきありがとうございます。

4

2 に答える 2

3

プロパティ$ep1->firstAiredDateTimeオブジェクトです。試しているように、そのプロパティに直接アクセスすることはできません。次のようなアクセサメソッドを使用する必要がありますformat()

   echo $ep1->firstAired->format('Y-m-d H:i:s');
于 2013-02-07T14:46:08.540 に答える
1

実際、少なくとも私にとっては、これは本当に、本当に奇妙です。最初は、あなたと同じように日付プロパティだけをエコーアウトするようにテストしましたが、機能しませんでした。次に、プロパティを表示するためにprint_rを追加することにしました...その後、日付文字列を印刷できました。

これは私のコードです:

$d = new DateTime();
print_r($d);
echo $d->timezone  . PHP_EOL;
echo $d->date  . PHP_EOL;

print_rそして、このようにそれを行うことはうまくいきます、しかし私はそれがうまくいかない行を削除しますか?

私のシステムは、シェルで実行されているphp5.3を備えたWindows8であり、これが私の証明です。

さらに別のPHP機能。

したがって、これを実行できると言えます。最初にprint_rを実行するだけで、すべてのシステムで機能するとは限りません。:D

于 2013-02-07T14:58:40.420 に答える