1

何かが期限切れになるまでのカウントダウンをしたいのですが、うまくいきません。特に、datetime の diff 関数を使用すると、本質的に何もない (すべて 0) の dateinterval が返されます。コードは次のとおりです。

    $created = new DateTime("2012-11-20");
    $expires = $created;
    $expires->add(new DateInterval("P14D")); //adds a week
    $timeLeft = $created->diff($expires);
    echo $timeLeft->format('%a days');

問題は、このコードが常に 0 日を返すことです..

4

1 に答える 1

4

主な問題は、オブジェクトをコピーする方法です。代わりにオブジェクトを複製する必要があります..置換

$expires = $created;

$expires = clone $created;

完全なコード

$created = new DateTime("2012-11-20");
$expires = clone $created;
$expires->add(new DateInterval("P14D")); //adds 14 days
$timeLeft = $created->diff($expires);
echo $timeLeft->format('%a days');

出力

14 days

ライブデモを見る

于 2012-12-02T21:56:36.393 に答える