1

我想倒计时多久,直到某些东西过期,但它不起作用。特别是,使用 datetime 的 diff 函数基本上返回一个什么都没有的 dateinterval(全 0)。这是代码:

    $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 回答